信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1363:小球(drop)
时间限制: 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)相关推荐
- 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分 信息学奥赛一本通 提高篇 提高版 第一部分 基础算法 第2章 二分与三分_mrcrack的博客-CSDN博客_信息学奥赛一本通 ...
- 《信息学奥赛一本通 提高篇》 第四部分 数据结构 第4章 倍增求LCA
例题1 点的距离 信息学奥赛一本通(C++版)在线评测系统 例题2 暗的连锁(Poj3417) 信息学奥赛一本通(C++版)在线评测系统 LOj10131 暗的连锁_juruo_xlh-CSDN博客 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1072:鸡尾酒疗法
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 14035 通过数: 6189 [题目描述] 鸡尾酒疗法,指"高效抗逆转录病毒治疗". 人们在鸡尾酒疗法的基础上 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1112:最大值和最小值的差
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9363 通过数: 5690 [题目描述] 输出一个整数序列中最大的数和最小的数的差. [输入] 第一行为M,表示整数个数,整数个数 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1109:开关灯
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11709 通过数: 5381 [题目描述] 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号, 初始时全部处于开 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1108:向量点积计算
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6036 通过数: 4909 [题目描述] 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 11290 通过数: 6162 [题目描述] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米. 我们可以把马路 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1106:年龄与疾病
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10304 通过数: 5830 [题目描述] 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理, 按照 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10572 通过数: 7206 [题目描述] 将一个数组中的值按逆序重新存放.例如,原来的顺序为8,6,5,4,1.要求改为1,4, ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1103:陶陶摘苹果
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12908 通过数: 8682 [题目描述] 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果. 苹果成熟的时候,陶陶就会 ...
最新文章
- python对共轭复数的定义_python print出共轭复数的方法详解
- Hadoop入门进阶步步高(一)-环境准备
- cache与buffer
- oracle adg 改密码,Oracle ADG数据库切换
- Lines色线halcon算子,持续更新
- html手机显示评论列表页面,请问如何完美显示评论列表头像
- 【 Grey Hack 】记一次被黑经历
- Nginx(七):nginx原理解析
- mac php7.0 yaf 安装,MAC MAMP PRO PHP YAF 安装
- UI基础设计规范,确定不了解一下?
- Android之十七 进度条和Hanlder
- 数据库修改服务器ip地址吗,服务器数据库与改ip地址吗
- 环信php创建群组,【PHP】接入环信创建群组和IM用户
- 音乐流媒体服务器Navidrome
- 怎样用计算机玩CS,电脑建立局域网玩cs的三种方法
- 精益产品开发—精益思想
- 如何把PDF转换成word呢?
- 爬虫之使用代理ip爬取
- 随想011:关于编程
- 碳中和背景下我国空调系统发展趋势2022(李先庭)
热门文章
- android sdk里的各目录作用
- android软件开发基础课程(一)
- 大型网站系统架构实践(五)深入探讨web应用高可用方案
- 【转】 Android 屏幕切换总结
- java如何保证mq一定被消费_消费端如何保证消息队列MQ的有序消费
- Debian下Cannot set LC_CTYPE to default locale: No such file or directory解决方法
- Dropwizard入门及开发步骤
- BZOJ1821 [JSOI2010]Group 部落划分 Group Kruskal
- tyvj 1067 合唱队形 dp LIS
- Windows下SVN服务器的搭建步骤