时间限制: 1000 ms 内存限制: 65536 KB
提交数: 1711 通过数: 924

【题目描述】

许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的标记方法如下图:

因为所有的节点最初为false,所以第一个球将会访问节点1,节点2和节点4,转变节点的布尔值后在节点8停止。第二个球将会访问节点1、3、6,在节点12停止。明显地,第三个球在它停止之前,会访问节点1、2、5,在节点10停止。

现在你的任务是,给定FBT的深度D和I,表示第I个小球下落,你可以假定I不超过给定的FBT的叶子数,写一个程序求小球停止时的叶子序号。

【输入】

一行包含两个用空格隔开的整数D和I。其中2≤D≤20,1≤I≤524288。

【输出】

对应输出第I个小球下落停止时的叶子序号。

【输入样例】

4 2

【输出样例】

12

【来源】

No

代码

#include <iostream>
#include <cmath>
using namespace std;
int D,I,ans,b[100000];
void go(int k)
{if(pow(2,(D-1))<=k && k<pow(2,D)){//在最后一层上ans=k;return;}if(b[k]){b[k]=!b[k];go(2*k+1);}else{b[k]=!b[k];go(2*k);}
}
int main()
{int i,a;cin>>D>>I;for(i=1;i<=I;i++){go(1);}cout<<ans;return 0;
}

信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1363:小球(drop)相关推荐

  1. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分

    信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...

  2. 《信息学奥赛一本通 提高篇》 第四部分 数据结构 第4章 倍增求LCA

    例题1 点的距离 信息学奥赛一本通(C++版)在线评测系统 例题2 暗的连锁(Poj3417) 信息学奥赛一本通(C++版)在线评测系统 LOj10131 暗的连锁_juruo_xlh-CSDN博客 ...

  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1072:鸡尾酒疗法

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14035 通过数: 6189 [题目描述] 鸡尾酒疗法,指"高效抗逆转录病毒治疗". 人们在鸡尾酒疗法的基础上 ...

  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1112:最大值和最小值的差

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9363 通过数: 5690 [题目描述] 输出一个整数序列中最大的数和最小的数的差. [输入] 第一行为M,表示整数个数,整数个数 ...

  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1109:开关灯

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11709 通过数: 5381 [题目描述] 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号, 初始时全部处于开 ...

  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6036 通过数: 4909 [题目描述] 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2 ...

  7. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11290 通过数: 6162 [题目描述] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米. 我们可以把马路 ...

  8. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1106:年龄与疾病

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10304 通过数: 5830 [题目描述] 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理, 按照 ...

  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10572 通过数: 7206 [题目描述] 将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求改为1,4, ...

  10. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1103:陶陶摘苹果

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12908 通过数: 8682 [题目描述] 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果. 苹果成熟的时候,陶陶就会 ...

最新文章

  1. linux命令上常用命令
  2. [HEOI2015] 兔子与樱花
  3. 一文看懂 K8s 日志系统设计和实践
  4. 重构项目之一:大图展示
  5. bootstrap mysql分页_bootstrap分页
  6. 动态规划之正则表达式匹配字符串
  7. bzoj 1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会 -- Tarjan
  8. 改动office outlook 2007默认文件夹的存放位置
  9. duplicate database的时候,rman连接 auxiliary database的后状态不正确
  10. Vue笔记大融合总结
  11. python切片输出_Python语言之详解切片
  12. Linux操作系统中的文件管理技巧
  13. 安装php-amqplib(RabbitMQ的phpAPI)
  14. 数据库里的小知识❤️
  15. php+psr4和自动加载,php自动加载规范 PSR4 (Thinkphp)
  16. tensorflow入门书籍推荐_架构书籍推荐(入门读)
  17. 54. yii 动作参数绑定
  18. java工程师的职业规划_Java工程师如何进行职业规划?
  19. 基于java springboot垃圾分类小程序源码(毕设)
  20. 关于秒杀的细节,了解多少

热门文章

  1. 服务器强迫患者 ;软件试用狂人
  2. java中的equals()空对象的出错
  3. Linux select TCP并发服务器与客户端编程
  4. 单链表的快速排序(转)
  5. 数仓和mysql的区别_数据库和数据仓库的区别和联系
  6. python颜色填充代码_在python tu中用颜色填充形状
  7. html中使浮动的字为行排列,CSS布局:float浮动
  8. 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
  9. ajax数据字符串拼接,ajax请求到后台数据,前台不用拼接字符串,一样显示到页面...
  10. Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值