二叉树--uva 679 Dropping Balls 二叉树数组模拟
来源:互联网 发布:音效网 知乎 编辑:程序博客网 时间:2024/06/07 20:32
题意:n组数据,每组给定树的深度d和球的个数i,求每组第i个球组后落在哪。
分析:模拟球下落的过程即可。
思路一:对于每组球,模拟开关的状态,一个一个下落,最后获得结果。超时了妥妥的。
/*@Filename: code.cpp@Author: wyl6 @Mail:ustbcs_wyl@163.com@Thought:*/#include <cstdio>#include <cstdlib>#include <iostream>#include <stack>#include <queue>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <vector>#include <bitset>#include <list>#include <sstream>#include <set>#include <functional>using namespace std;int a[1<<20];int main(){int n,D,I; scanf("%d",&n); while(n--) { scanf("%d%d",&D,&I); memset(a,0,sizeof(a));//这一个就已经超时了 int k; int m = (1<<D)-1; for (int i = 0; i < I; ++i){ k = 1; while(1) { a[k] = !a[k];//改变状态 k = a[k]? 2*k:2*k+1; if(k > m) break; } } printf("%d\n",k/2);}return 0;}
思路二:每组球都会下落d-1次,而下到每层的时候,第偶数个往右,第奇数个往左,可以直接模拟第i个球的状态。
/*@Filename: code.cpp@Author: wyl6 @Mail:ustbcs_wyl@163.com@Thought:*/#include <cstdio>#include <cstdlib>#include <iostream>#include <stack>#include <queue>#include <algorithm>#include <cstring>#include <string>#include <cmath>#include <vector>#include <bitset>#include <list>#include <sstream>#include <set>#include <functional>using namespace std;int n,D,I;int main(){ scanf("%d",&n); while(n--) { scanf("%d%d",&D,&I); int k = 1; for (int i = 0; i < D-1; ++i) if(I%2 == 0) {k = 2*k+1;I /= 2;} else{k = 2*k;I = (I+1)/2;} printf("%d\n",k);}return 0;}参考:算法竞赛入门经典(刘大爷)第6章
阅读全文
0 0
- 二叉树--uva 679 Dropping Balls 二叉树数组模拟
- Uva-679 - Dropping Balls(二叉树)
- UVA 679Dropping 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 (二叉树 思维题)
- 二叉树-简单-Dropping Balls
- 树状结构-完全二叉树的编号-树状数组Uva Dropping Balls
- 例题 6-6 小球下落(Dropping Balls) UVa 679 二叉树规律
- UVA679 Dropping Balls【二叉树结点编号】
- uva679--Dropping Balls--满二叉树
- UVa--679 Dropping Balls(模拟)
- UVA 679 Dropping Balls 【模拟+数学规律】
- UVa679(Dropping Balls)(二叉树的编号)
- 例题6-6 UVs679 Dropping Balls(二叉树)
- android闪光灯控制
- Unity+Vuforia+Window10打包 PC
- 关于你
- android studio 使用自定义圆形头像时预览没效果
- 八皇后问题-回溯-DFS
- 二叉树--uva 679 Dropping Balls 二叉树数组模拟
- 软件测试
- Courses HDU
- MonoDevelop快捷键
- Java基础——线程及并发机制
- 用<activity-alias/>让配置WXEntryActivity更方便
- 关于cmake使用(使用cmake编译assimp库)
- MongoDB_基础知识
- dubbo框架原理