uva 679 小球下落
2017-08-21 20:21
302 查看
方法一 #include<iostream> //应用模拟的方法进行操作,不过要开一个比较大的数组 #include<stdio.h> #include<string> #include<string.h> using namespace std; const int maxn = 20; int s[1<<maxn]; int main() { int d,I; while(scanf("%d%d",&d,&I)==2) { memset(s,0,sizeof(s)); int k = 1; int n = (1<<d-1)-1; for(int i = 1; i <= I;i++) { k = 1; for(;;) { s[k]= !s[k]; if(s[k]) k = k * 2; else k = k*2+1; if(k >= n)break; } } printf("%d\n",k); } return 0; } 方法二 解析:题目中只是让你输出第I个球的位置,如果I是奇数时,他是往左走的第(I+1)/2个,如果是偶数时,他是往右走的第I/2个 #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int main() { int D,I; while(scanf("%d%d",&D,&I)==2) { int k = 1; int n = 1<<D-1; for(int i= 0; i < D-1; i++ ) { if(I%2==1) { k = k*2; I =(I+1)/2; } else { k= k*2+1; I=I/2; } } cout<<k<<endl; } return 0; }
相关文章推荐
- 小球下落 UVa 679
- UVa 679 例题6-6 小球下落(Dropping Balls)
- 小球下落 UVa679
- UVA-679小球下落
- Dropping Balls 小球下落 UVA 679
- uva-679 小球下落
- UVa-679 小球下落
- 6_6 小球下落(UVa679)<完全二叉树编号>
- UVa679 小球下落(树)
- 【UVa-679】小球下落——二叉树的编号
- 例题 6-6 小球下落(Dropping Balls) UVa 679 二叉树规律
- (小球下落)Dropping Balls UVA - 679
- 例题6-6 小球下落(Dropping Balls, UVa 679)
- UVa 679 小球下落 简单模拟题,树
- UVA 679 Dropping Balls 由小见大,分析思考 二叉树放小球,开关翻转,小球最终落下叶子编号。
- uva 122 小球下落 树的模拟
- UVa 679 Droppintg Balls (小球下落)
- UVA679模拟小球降落(大数模拟超时是找规律)
- UVa 679 - Dropping Balls
- Uva679