UVA 679
来源:互联网 发布:数控圆弧编程举例 编辑:程序博客网 时间:2024/06/03 12:05
题目大意:一棵满二叉树,最多20层,有D层,每个节点都有一个开关,初始状态全为关,球经过开关,开关状态改变。每个球从根节点往下掉,节点开,则往右,关则往左。
解题思路:小紫二叉树第一题。两种思路,第一种暴力,数据太大会爆。第二种,I号为奇数时,从根节点往左,在左字数,他是作为经过该节点的第(I+1)/2个,在判断往左往右。I号为偶数时,从根节点往右,在右子树,他是作为经过该节点的第I/2个。每层往下走,没走一层,I变为在该节点是第几个经过的球,往左是第(I+1)/2个,往右是第I/2个。而这层编号为k,下一层编号是往左是2*k,往右是2*k+1,因为第一层编号都为1,作为进入循环入口,循环次数就比层数少一。没有小紫难想到。。。
ac代码:
#include <iostream>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<D; i++){if (I%2)k = 2 * k, I = (I + 1) / 2;elsek = 2 * k + 1, I = I / 2;}printf("%d\n", k);} return 0;}
阅读全文
0 0
- uva 679
- uva 679
- UVA 679
- UVa 679
- UVA 679
- UVA 679
- UVA 679 - Dropping Balls
- uva 679 - Dropping Balls
- uva-679 小球下落
- UVa 679 Dropping Balls
- UVA - 679 Dropping Balls
- UVa 679 Dropping Balls
- UVa 679 - Dropping Balls
- UVa 679 - Dropping Balls
- UVa 679 - Dropping Balls
- UVa 679 - Dropping Balls
- uva 679 Dropping Balls
- Uva - 679 - Dropping Balls
- Android进程线程调度nice等优先级讨论
- POJ 3414
- 重命名表名和列名sql语句
- 轻量级框架SSH应用与开发——Struts2之学习总结(进阶)
- C++primer阅读笔记---------特殊工具与技术
- UVA 679
- IAT和导入表关系
- 一个rootkit程序--隐藏文件和进程
- 剑指offer——32.把数组排成最小的数
- 暑期集训之感
- 51Nod-1174-区间中最大的数
- Json数组转Gson
- UVA 122
- 共享链系统开发平台开发