HDOJ HDU 1034 Candy Sharing Game
来源:互联网 发布:node2vec 知乎 编辑:程序博客网 时间:2024/06/06 12:50
HDOJ 1034 Candy Sharing Game
题目
点此查看 HDOJ 1034 Candy Sharing Game
分类
模拟
题意
糖果分享游戏
规则如下
- 初始时 每个人都有一堆糖果 并 成圈站着
- 听到指令 同时 将一半的糖果给下一个人
- 每轮完成时 手中糖数 为 奇数时 会得到一颗糖
- 重复以上两步骤 直到 所有人 的 糖数一致
求游戏要进行多少轮 最终每人的糖数
题解
按题意模拟即可
技巧
这个题的难点在于 同时 将一半的糖果给下一个人
模拟时 将 最后一个人先减半 标记 之后 从第一个模拟 当前同学糖果数 简版记录 再加上 上一个的糖果数记录 即可
代码
#include <iostream>#define max 1000using namespace std;int cir[max];bool isequal(int n);int add(int n);int main(){ int n,t,lst,nxt; while(cin >> n && n) { t = 0; for(int i = 0;i < n;i++) { cin >> cir[i]; } while(!isequal(n)) { t++;// cout << t << endl;// for(int j = 0;j <n;j++)// cin.get(); cir[n-1] /= 2; lst = cir[n-1]; for(int i = 0;i < n-1;i++) { cir[i] /= 2; nxt = cir[i]; cir[i] += lst; lst = nxt; } cir[n-1] += lst; add(n); } cout << t << " " << cir[0] << endl; } return 0;}bool isequal(int n){ int f = cir[0]; for(int i = 1;i < n;i++) if(f != cir[i]) return false; return true;}int add(int n){ for(int i = 0;i < n;i++) if(cir[i] % 2 == 1) cir[i]++;}
阅读全文
0 0
- HDOJ HDU 1034 Candy Sharing Game
- hdoj-1034-Candy Sharing Game
- hdoj 1034 Candy Sharing Game
- hdoj 1034 Candy Sharing Game
- hdoj 1034Candy Sharing Game
- HDOJ 1034 Candy Sharing Game
- hdu 1034 Candy Sharing Game
- hdu 1034 Candy Sharing Game
- HDU 1034 Candy Sharing Game
- HDU 1034 Candy Sharing Game
- hdu 1034 Candy Sharing Game
- hdu 1034 Candy Sharing Game
- hdu 1034 Candy Sharing Game
- HDU 1034 Candy Sharing Game
- 【HDU】 1034 Candy Sharing Game
- HDU:1034 Candy Sharing Game
- HDU 1034 Candy Sharing Game
- HDU 1034 Candy Sharing Game
- Java中this的用法及在构造器中调用构造器
- Quartz两种不同类型的Trigger实现
- nrf52832增大数据吞吐量
- Java--排序算法
- es6 set和weakset
- HDOJ HDU 1034 Candy Sharing Game
- 继承中的static关键字
- HDU 1175 连连看 DFS
- 数组去重的五种方式
- 素数打表(两种方法)
- ASP.NET MVC上传文件的几种方法
- Eclipse快捷键把一段代码向左右移动和注释一块代码
- GBDT与随机森林区别
- Java中的关系操作符