题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2149

首先介绍一下巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

分析:显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。

View Code

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6
 7 int main(){
 8     int n,m;
 9     while(~scanf("%d%d",&m,&n)){
10         if(m%(n+1)==0){puts("none");continue;}
11         else {
12             if(m<=n){
13                 printf("%d",m);
14                 for(int i=m+1;i<=n;i++)printf(" %d",i);
15                 puts("");
16             }else {
17                 printf("%d\n",m%(n+1));
18             }
19         }
20     }
21     return 0;
22 }

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1846

View Code

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5
 6 int main(){
 7     int _case,n,m;
 8     scanf("%d",&_case);
 9     while(_case--){
10         scanf("%d%d",&n,&m);
11         if(n%(m+1)==0)puts("second");
12         else puts("first");
13     }
14     return 0;
15 }

转载于:https://www.cnblogs.com/wally/archive/2013/05/09/3065985.html

hdu 2149+hdu 1846(巴什博弈)相关推荐

  1. Hdu Brave Game(巴什博弈)

    Brave Game 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象 ...

  2. HDU 1846-Brave Game(巴什博弈-SG函数)

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. hdu 2149 巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2149 分析:就是巴什博弈的概念. 题目要求:对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价.两个 ...

  4. 题解报告:hdu 1846 Brave Game(巴什博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1846 Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片, ...

  5. 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188

    巴什博弈: 只有一堆n个物品,两个人轮流从这堆物品中取除,每次取的个数为[1,m](至少去一个,最多取m个),最后取完者获胜 特征: 物品只有一堆,简单变形: 要么在范围内不规定个数,要么规定只能取几 ...

  6. hdu 1846 Brave Game 勇敢者的游戏 DP/巴什博弈

    动态规划/简单博弈 Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. HDU 1846 Brave Game(巴什博弈)

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  8. 勇者游戏(巴什博弈)- HDU 1846

    博弈算法中比较经典的一个博弈问题是巴什博奕,巴什博弈是这样的: 有一堆物品,数量为n,两个人轮流取,规定每次最多取m个,最少取1个. 我们定义先取者为F(first),后取者为S(second) 网上 ...

  9. hdu 2188巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2188 分析:巴什博弈. View Code // I'm lanjiangzhou //C #include & ...

最新文章

  1. android6.0升级名单,三星Android 6.0升级详细名单[多图]
  2. 动态树与静态树显示——(一)
  3. 这6个地方不去简直太可惜!
  4. linux那些事之pin memory相关API
  5. Web设计与开发终极资源大全
  6. jstack命令分析
  7. java 运行500错误_MyEclipse运行JAVA Web时出现HTTP Status 500错误
  8. 阿里云maven仓库的使用详解以及报错解决方法
  9. 疫情情况下酒店办理入住流程
  10. 如何入门短视频剪辑?先要有五大思维,有想法才能有如神助
  11. 简历python技能怎么写_老鸟教你如何写好技术简历
  12. Linux_Ubuntu快捷键截屏
  13. 北京落户2020政策
  14. Python重试之美, 优雅的Tenacity
  15. excel如何拆分表格?
  16. 10----编程分苹果
  17. 数据库运行sql文件
  18. java模拟内存溢出并分析_本地模拟内存溢出并分析Dump文件
  19. Centos7创建及修改用户名和用户组名
  20. 网络系统结构与设计的基本原则

热门文章

  1. DefenseCode ThunderScan 静态代码审计工具
  2. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群
  3. 问村民一个什么问题就能决定走哪条路?
  4. 微信小程序有关于Linux的吗,微信小程序可以跳转到手机 app 啦!
  5. java中继承applet类_java.applet.Applet类
  6. 双十二心动礼遇,送你3本算法好书
  7. java系列10:ArrayList
  8. lightclients将于4月27日主持召开EIP-3074社区会议
  9. BitMEX联合创始人:以比特币为首的加密货币综合体是防范恶性通货膨胀的最佳对冲
  10. 比特币市值目前是白银68%