时间限制: 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. python对共轭复数的定义_python print出共轭复数的方法详解
  2. Hadoop入门进阶步步高(一)-环境准备
  3. cache与buffer
  4. oracle adg 改密码,Oracle ADG数据库切换
  5. Lines色线halcon算子,持续更新
  6. html手机显示评论列表页面,请问如何完美显示评论列表头像
  7. 【 Grey Hack 】记一次被黑经历
  8. Nginx(七):nginx原理解析
  9. mac php7.0 yaf 安装,MAC MAMP PRO PHP YAF 安装
  10. UI基础设计规范,确定不了解一下?
  11. Android之十七 进度条和Hanlder
  12. 数据库修改服务器ip地址吗,服务器数据库与改ip地址吗
  13. 环信php创建群组,【PHP】接入环信创建群组和IM用户
  14. 音乐流媒体服务器Navidrome
  15. 怎样用计算机玩CS,电脑建立局域网玩cs的三种方法
  16. 精益产品开发—精益思想
  17. 如何把PDF转换成word呢?
  18. 爬虫之使用代理ip爬取
  19. 随想011:关于编程
  20. 碳中和背景下我国空调系统发展趋势2022(李先庭)

热门文章

  1. android sdk里的各目录作用
  2. android软件开发基础课程(一)
  3. 大型网站系统架构实践(五)深入探讨web应用高可用方案
  4. 【转】 Android 屏幕切换总结
  5. java如何保证mq一定被消费_消费端如何保证消息队列MQ的有序消费
  6. Debian下Cannot set LC_CTYPE to default locale: No such file or directory解决方法
  7. Dropwizard入门及开发步骤
  8. BZOJ1821 [JSOI2010]Group 部落划分 Group Kruskal
  9. tyvj 1067 合唱队形 dp LIS
  10. Windows下SVN服务器的搭建步骤