HDU 1846 巴什博奕(Bash Game)
来源:互联网 发布:js保存cookie到本地 编辑:程序博客网 时间:2024/05/22 13:42
Brave Game
Problem Description
十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。
今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。
当然,除了“勇敢”,我还希望看到“诚信”,无论考试成绩如何,希望看到的都是一个真实的结果,我也相信大家一定能做到的~
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。
今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。
当然,除了“勇敢”,我还希望看到“诚信”,无论考试成绩如何,希望看到的都是一个真实的结果,我也相信大家一定能做到的~
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。
每组测试数据占一行,包含两个整数n和m(1<=n,m<=1000),n和m的含义见题目描述。
223 24 3
firstsecond
巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规
定每次至少取一个,最多取m个。最后取光者得胜。
显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,
后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)*r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走
k(k≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的
取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。
实现代码:
#include<iostream>using namespace std;void solution(int n,int m){//这里是n=(m+1)*r+s这个公式的体现 if(n%(m+1)>0&&n%(m+1)<=m)cout<<"first"<<endl;elsecout<<"second"<<endl;}int main(){int n,m;int T;cin>>T;while(T--){cin>>n>>m;solution(n,m);}return 0;}
0 0
- HDU 1846 巴什博奕(Bash Game)
- hdu 1846 Brave Game (Bash Game)
- HDU 1846 || HDU2188 ||HDU 2149巴什博奕(Bash Game)
- hdu 2188 简单博弈 巴什博奕(Bash Game)----同1846
- NYOJ 题目23 取石子(一),hdu 题目1846 Brave Game 巴什博奕(Bash Game)
- hdu 1846 Brave Game(博弈,bash game)
- 巴什博奕(Bash Game)
- 巴什博奕(Bash Game)
- HDU 2149 Public Sale 巴什博奕(Bash Game)
- HDU 1847 bash game 变化
- 理论: 博弈2: 巴什博奕(Bash Game)
- NYOJ - 巴什博奕(bash game)
- [ACM] hdu 1846 Brave Game (巴什博奕)
- HDU 1846 Brave Game(巴什博奕)
- HDU 1846 Brave Game(巴什博奕)
- HDU-1846 Brave Game(巴什博奕)
- 博弈:巴什博奕(Bash Game)威佐夫博奕(Wythoff Game)尼姆博奕(Nimm Game)
- HOJ 1846 博弈 BASH game
- halcon 圆检测(识别圆、圆拟合)
- Android 小笔记 Uri获取绝对路径 、路径转Bitmap、获取屏幕截图
- RxJava 的使用详解(一)
- 新站不收录内页怎么办,加快新站内页收录的方法!
- java集合框架(三)——映射
- HDU 1846 巴什博奕(Bash Game)
- vxworks错误码解读
- ubantu 配置jdk tomcat xshell连接
- CodeForces798C Mike and gcd problem(思路)
- 排序模板:分数线划定
- Android Studio快速注释
- (带哨兵)直接插入排序
- Android studio (单元测试)
- json数据结构拼装的一个例子