题目大意:一棵满二叉树,最多20层,有D层,每个节点都有一个开关,初始状态全为关,球经过开关,开关状态改变。每个球从根节点往下掉,节点开,则往右,关则往左。
【#|UVA 679 - Dropping Balls】解题思路:小紫二叉树第一题。两种思路,第一种暴力,数据太大会爆。第二种,I号为奇数时,从根节点往左,在左字数,他是作为经过该节点的第(I+1)/2个,在判断往左往右。I号为偶数时,从根节点往右,在右子树,他是作为经过该节点的第I/2个。每层往下走,没走一层,I变为在该节点是第几个经过的球,往左是第(I+1)/2个,往右是第I/2个。而这层编号为k,下一层编号是往左是2*k,往右是2*k+1,因为第一层编号都为1,作为进入循环入口,循环次数就比层数少一。没有小紫难想到。。。
ac代码:
#include
using namespace std;
int main()
{
int n, I, D, k;
while (scanf("%d", &n) != EOF && n >= 0)
while (n--){
scanf("%d%d", &D, &I);
k = 1;
for (int i=1;
i
推荐阅读
- #|UVA 1587 - Box
- #|轮廓阴影和圆角
- #|Oracle报错(ORA-01034 或者 ORA-27101 终极解决办法(图文))
- #|Zookeeper后端开发工具Curator的使用 | Curator对节点的增删改查 | ACL权限控制 | 分布式锁 | 分布式计数器 | 附带最新版本下载
- Java编程开发|Java多线程(synchronized | Volatile 和Lock和ReadWriteLock多方位剖析(一))
- #|Zookeeper 图形化的客户端工具(ZooInspector)| 图形化的监控工具(taoKeeper)的下载和使用 | 后端开发工具Curator的高级应用
- #|SpringBoot整合redis
- #|ALGO-230 RP大冒险
- #|【多线程】多线程的“前世”,“今生”与“未来”