算法竞赛入门经典_6数据结构基础
来源:互联网 发布:overlay 网络实验 编辑:程序博客网 时间:2024/05/16 11:11
* 6.3 树和二叉树
** 小球下落问题
//小球下落问题/* 有一棵二叉树,最大深度为D,且所有叶子的深度相同.所有节点从上到下从左到右 编号为1,2,3,4,...,2^D-1. 在节点1处放一小球,它会往下落.每个内节点上都有一个开关,初始全部关闭,当每次有 有小球落在开关上是,状态都会改变.当小球到达一个内节点时,如果该节点上的开关关闭, 则往左走,否则往右走,直到走到叶子结点. 一些小球从结点1处依次开始下落,最后一个小球会落到哪里呢? 输入: 叶子深度D和小球个数I 输出: 第I个小球最后所在叶子的编号 */ #include<cstdio>#include<cstring>const int maxd = 20;int s[1<<maxd]; //最大结点个数为2^maxd - 1int main(){ int D, I; while(scanf("%d%d", &D, &I) == 2){ memset(s, 0, sizeof(s)); //开关 int k, n = (1<<D)-1; //n是最大结点编号 for(int i = 0; i < I; i++){ //连续让I个小球下落 k = 1; for(;;){ s[k] = !s[k]; k = s[k]?k*2:k*2+1; //根据开关选择下落方向 if(k > n) break; //已经落出界了 } } printf("%d\n", k/2); //出界之前的编号 } return 0; }
运行结果:
阅读全文
0 0
- 算法竞赛入门经典_6数据结构基础
- 算法竞赛入门经典 第六章 数据结构基础
- 【索引】算法竞赛入门经典-第6章 数据结构基础
- 算法竞赛入门经典:第六章 数据结构基础 6.2铁轨
- 算法竞赛入门经典:第六章 数据结构基础 6.4测试
- 算法竞赛入门经典:第六章 数据结构基础 6.11迷宫
- 《算法竞赛入门经典》-第六章-数据结构基础
- 算法竞赛入门经典:第六章 数据结构基础 6.1卡片游戏
- 算法竞赛入门经典:第六章 数据结构基础 6.3移动小球
- 算法竞赛入门经典:第六章 数据结构基础 6.5小球下落
- 算法竞赛入门经典:第六章 数据结构基础 6.6层次遍历
- 算法竞赛入门经典:第六章 数据结构基础 6.7层次遍历
- 算法竞赛入门经典:第六章 数据结构基础 6.10黑白图像
- 算法竞赛入门经典:第六章 数据结构基础 6.12迷宫路径
- 算法竞赛入门经典:第六章 数据结构基础 6.13拓扑排序
- 算法竞赛入门经典:第六章 数据结构基础 6.14欧拉回路
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 例题(17/22)
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
- Oracle的概念理解
- 远程桌面连接_全屏问题
- unity出现Ignoring menu item NGUI because it is in no submenu!
- 出现unknown opening required错误
- php项目_系网站建设
- 算法竞赛入门经典_6数据结构基础
- 3dmax相关的英语
- java图形界面开发插件
- java图形界面开发_仿pc版TIM
- arm_1_指令的寻址方式
- java包名问题
- java Swing组件的对齐问题
- java Swing组件的对齐问题2
- [置顶]java环境配置步骤