hdu1850 Being a Good Boy in Spring Festival ,尼姆博弈(Mimm game),Min sum hdu2176 poj2975
来源:互联网 发布:青岛网络干部学院app 编辑:程序博客网 时间:2024/04/29 09:51
题意:
桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);
两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。
题解:
尼姆博奕(Nimm Game)
Nim-sum = 0 必败态
先求所有堆的 Nim-sum = N1 ^ N2 ^ ... NM
然后
res =Nim-sum ^ Ni
如果 res < Ni, 则先手玩家只要第一步从Ni堆中取走Ni-res个, 则剩下的局面必败态(Nim-sum = 0,)
即为剩下的局面为必败态。则这就一种取胜的方案。
对于每个堆的操作至多只有一种方法可以导败必败态
换汤不换药的题:
hdu 2176 取(m堆)石子游戏
poj 2975 Nim Min-sum Bouton定理
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[200];int main() { int n; while(~scanf("%d", &n)&&n) { int sum = 0; for(int i=0; i<n; ++i) { scanf("%d", &a[i]); sum ^= a[i]; } int ans = 0; for(int i=0; i<n; ++i) if(a[i] > (sum^a[i]) ) ans++; printf("%d\n", ans); } return 0;}
0 0
- hdu1850 Being a Good Boy in Spring Festival ,尼姆博弈(Mimm game),Min sum hdu2176 poj2975
- HDU1850 Being a Good Boy in Spring Festival 博弈
- hdu1850 Being a Good Boy in Spring Festival nim博弈
- HDU1850 Being a Good Boy in Spring Festival Nim博弈
- ACM-尼姆博弈之Being a Good Boy in Spring Festival——hdu1850
- hdu1850 Being a Good Boy in Spring Festival(尼姆博弈Nim)
- HDU1850 Being a Good Boy in Spring Festival(尼姆博弈)
- hdu1850 Being a Good Boy in Spring Festival 博弈 nim-sum定理
- Being a Good Boy in Spring Festival(尼姆博弈)
- Being a Good Boy in Spring Festival (nim game 尼姆博弈)
- hdu1850 Being a Good Boy in Spring Festival
- HDU1850-Being a Good Boy in Spring Festival
- hdu1850 Being a Good Boy in Spring Festival
- HDU1850:Being a Good Boy in Spring Festival(Nim)
- hdu1850 Being a Good Boy in Spring Festival
- HDU1850-Being a Good Boy in Spring Festival-博弈论
- HDU1850 Being a Good Boy in Spring Festival
- hdu1850 Being a Good Boy in Spring Festival
- D3D 文字 Text2D
- 关于磁盘空间的命令du和df一点儿总结
- 会做手撕包菜了
- java io 使用规则
- SBJSON结构讲解
- hdu1850 Being a Good Boy in Spring Festival ,尼姆博弈(Mimm game),Min sum hdu2176 poj2975
- 哈弗曼编码
- MFC---理解Windows消息循环机制
- SQL面试题总结
- c语言中strlen的几种写法
- 周五网络公开课
- spring文件上传文件过大处理机制
- 关于硬件信息读取及运行环境的一些问题
- ndroid之SurfaceView实现视频播放