UVA.679 Dropping Balls (二叉树 思维题)
来源:互联网 发布:淘宝禁止出售的药品 编辑:程序博客网 时间:2024/06/05 10:15
UVA.679 Dropping Balls (二叉树 思维题)
题意分析
给出深度为D的完全二叉树,按照以下规则,求第I个小球下落在那个叶子节点。
1. 默认所有节点的开关均处于关闭状态。
2. 若有小球下落在关闭状态的节点时,走向其左子树,否则走向其右子树。
3. 小球下落到某个节点,通过后开关反转。
模拟肯定不行,要根据树的特点和下落规则找简单办法。首先一个球下来,开关的状态要么是开要么是关,而且是交替进行,于是小球走的方向,是与小球是当前节点第几个球是有关系的。不难发现,对于每一个节点来说,若这个小球是其奇数个球,那么就会走向左子树,若是偶数个球,则会走向其右子树。根据这条性质,便可以直接模拟最后一个小球的走向。
代码总览
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int main(){ int kase; while(scanf("%d",&kase) && kase !=-1){ while(kase --){ int D ,I ; scanf("%d%d",&D,&I); int k =1; for(int i = 0;i<D-1; ++i){ if(I%2) {k = k*2; I = (I+1)/2;} else{k = k*2 +1; I/=2;} } printf("%d\n",k); } } return 0;}
1 0
- UVA.679 Dropping Balls (二叉树 思维题)
- Uva-679 - Dropping Balls(二叉树)
- UVA 679Dropping Balls(二叉树)
- UVA 679 Dropping Balls 【二叉树】
- 二叉树--uva 679 Dropping Balls 二叉树数组模拟
- 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
- UVa 679 - Dropping Balls
- UVa 679 - Dropping Balls
- UVa 679 - Dropping Balls
- UVALive 2678 子序列
- 有史以来写的最low的接口
- Good Numbers
- sping AOP 使用
- 最短路径—Dijkstra算法和Floyd算法
- UVA.679 Dropping Balls (二叉树 思维题)
- Django基本命令与初始用法
- 【zzuli】九进制转化为十进制
- Hibernate 单向N-1关联
- linux 邮件服务器
- 朴素贝叶斯分类器——机器学习算法(二)
- 线段树Lazy-tag
- 【LeetCode】42. Trapping Rain Water
- wordnet的中文支持项目open multilingual wordnet分析试用