HDU2177——取(2堆)石子游戏(威佐夫博弈)
题目链接
这道题是HDU1527的升级版,题意都好懂,是威佐夫博弈的一道模板题,如果不是很了解威佐夫博弈,可以看一看我写的HDU1527的博客,我大致陈述了威佐夫博弈的一些基本知识,有助于解决此题。这道题目就是判断了当前状态为非奇异局势的时候如何拿走石头使其成为奇异局势,由于数据范围在可接受范围之内,所以先吧0<=k<=1000000的奇异局势存在vis数组内然后,对于所有可能的更改进行暴力找出复合条件的奇异局势即可。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>using namespace std;int vis[1000005]= {0};int main()
{//freopen("in.in","r",stdin);//freopen("out.out","w",stdout);for(int i=1; i<1000005; i++)vis[i]=(int)(i*1.0*(1+sqrt(5))/2);int n, m;while(scanf("%d%d",&n,&m)&&(n||m)){int k=m-n;if(vis[k]==n){printf("0\n");continue;}printf("1\n");if(n>vis[k]&&m>vis[k]+k)printf("%d %d\n",vis[k],vis[k]+k);for(int i=1; i<1000005; i++)if(vis[i]==n){if(m>vis[i]+i)printf("%d %d\n",vis[i],vis[i]+i);break;}else if(vis[i]==m){if(n>vis[i]+i)printf("%d %d\n",vis[i],vis[i]+i);break;}for(int i=1; i<1000005; i++)if(vis[i]+i==m){if(n>vis[i])printf("%d %d\n",vis[i],vis[i]+i);break;}else if(vis[i]+i==n){if(m>vis[i]+i)printf("%d %d\n",vis[i],vis[i]+i);break;}}return 0;
}
HDU2177——取(2堆)石子游戏(威佐夫博弈)相关推荐
- 取两堆石子(威佐夫博弈)
有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法, 一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者 ...
- HDU2176 取(m堆)石子游戏【Nim博弈】
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 洛谷P2252 取石子游戏(威佐夫博弈)
题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- HDU - 1527 取石子游戏(威佐夫博弈)
题目链接:点击查看 题目大意:有两堆石子,两个人轮流取,每次可以取一堆中任意多的石子,或者取两堆中数量相同的石子,先将石子取完者获胜,若先手获胜输出1,后手获胜输出0 题目分析:这个题目涉及到了威佐夫 ...
- ACM-尼姆博弈之取(m堆)石子游戏——hdu2176
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDUOJ-----2175取(m堆)石子游戏
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 杭电 2176 取(m堆)石子游戏(博弈)
取(m堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU - 2176 取(m堆)石子游戏(尼姆博奕)
题目链接:点击查看 题目大意:给出m堆石子,规则是尼姆博弈的规则,问先手必胜还是必败,若能必胜则第一次有多少种方式取石子 题目分析:这个题目是因为一开始知道尼姆博弈的结论,需要异或所有石子来判断的,然 ...
- 杭电acm 2177 取(2堆)石子游戏(威佐夫博弈)
取(2堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 博弈基础与例题分析(巴什博弈威佐夫博弈尼姆博奕 斐波那契博弈SG博弈)
文章目录 巴什博弈Bash Game 威佐夫博弈Wythoff Game 尼姆博奕 斐波那契博弈:算法如其名 SG博弈 图 mex(minimal excludant)运算 获得sg表 应用 A Br ...
最新文章
- Windows Server 2012 从入门到精通系列之如何提高DC持续性?
- Shadow Mapping 的原理与实践 【转】
- android layout background,Android LinearLayout Gradient Background
- 未能加载文件或程序集mysql.web.v20__关于MySQL Server影响ASP.NET网站使用的问题:未能加载文件或程序集MySql.Web.v20...
- 计算机网卡的安装过程,千兆网卡怎么装_千兆网卡安装步骤
- JavaScript重写alert方法
- phpstorm主题下载地址及安装
- H3C交换机型号区分
- 一个人生活,如何摆脱孤独提升幸福感?
- Dijkstra算法和A*算法总结
- Android - 吸顶效果 布局篇
- java调用java程序,详细说明
- 106.android简单的GPS实时定位
- 算法导论第三版 第15章习题答案
- java 完全匹配_正则表达式的完全匹配和部分匹配
- 票据二维码中信息获取处理与分析系统 毕业设计
- 关于批处理的学习之一[前言]
- 【毕业答辩】值得所有毕业生收藏的论文答辩技巧!
- Linux系统编程 46 -lseek函数
- VUE中使用http请求
热门文章
- 《SMART原则》分享
- 8.cisco思科模拟器无线路由器设备实训练习
- OpenGL入门教程
- 【Win7系统 沙滩啤酒桌面主题】
- 虚拟机中标麒麟的网络设置
- 新浪微博开放平台_Xweibo,修改设置…
- 下行文格式图片_谁能告诉我公文的下行文\上行文的模板
- 软件开发文档的编写---软件研制任务书 (2015-03-14 17:55:03)转载▼ 标签: 软件 文档 任务书 需求 要求	分类: 软件过程改进 一. 简介 客户要
- 主板点不亮 复位BIOS_魔改主板,体会扣扣索索装个机子的快乐。昂达H110 SD3加专用条...
- xd文件用Creative Cloud下载与安装打开