二叉树之小球下落问题
来源:互联网 发布:golang json map 遍历 编辑:程序博客网 时间:2024/04/26 02:09
有一颗二叉树,最大深度为D,所有叶子的深度都相同。所有结点从上到下从左到右的编号分别依次是1,2,3,4,~,(2的D次方-1)。在节点1放下一个小球,它会往下落。每个内结点都有一个状态(开或关),初始时,每个内结点都处于关闭状态,当小球经过一个内结点时,开关状态会改变。当为开状态时,小球向左落下;当为关状态时,小球向下落下,直到走到叶子结点。
输出树的深度D,和小球数量I
输出第I个小球落到的结点编号
输入样例:
4 2
3 4
2 2
16 12345
输出样例:
12
7
3
36358
分析:
每个小球都会落到结点上,只能往左或者往右,我们分析小球的奇偶性,发现:若小球编号是奇数,则是往左落下的第(I+1)/2个小球;若小球是偶数,则是往右落下的第I / 2个小球。以此判断来模拟最后一个小球的路线。
代码如下:
#include <stdio.h>#include <string.h>const int MAXD = 20;int main(){ int D,I; while(scanf("%d%d",&D,&I)==2) { int i,k=1; for(i=0;i<D-1;i++) { if(I%2) { k=k*2; I=(I+1)/2; } else { k=k*2+1; I=I/2; } } printf("%d\n",k); } return 0;}
- 二叉树之小球下落问题
- 二叉树 小球下落问题
- 二叉树之小球下落
- 二叉树之小球下落
- 二叉树之小球下落
- 二叉树之小球下落问题(js)
- 二叉树——小球下落问题
- 二叉树—小球下落问题
- 小球下落 二叉树
- 小球下落(二叉树)!!!!
- 小球下落-二叉树
- 二叉树:小球下落
- 二叉树:小球下落
- 小球二叉树下落
- 树和二叉树之小球下落
- 算法研究之二叉树小球下落
- 算法研究之二叉树小球下落
- 小球下落(二叉树)
- IOS之云端应用
- 安装程序:软件从无到有。卸载程序:软件从有到无。更新程序:软件的覆盖安装,
- jdk为tomcat配置ssl证书及安装——(安装失败后分析)
- JavaScript数组
- OpenNebula使用文档
- 二叉树之小球下落问题
- 一些互联网公司的笔试题
- IC公司的发展
- Microwindows(Nano-X)移植
- iOS指南系列:如何解决奔溃问题
- jsp页面中插入css样式的三种方法
- IOS之地图和定位应用开发
- 谈谈Linux内核驱动的coding style
- MATLAB 线性回归