博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
尼姆博弈
阅读量:5304 次
发布时间:2019-06-14

本文共 1835 字,大约阅读时间需要 6 分钟。

尼姆博弈(一)

Description:

Z和C两个人闲着无聊,就玩了个纸牌游戏。游戏是这样的,有两堆n和m张纸牌,纸牌是可以不同张数,也可以相同张数。玩游戏吗?必须有规则:一、可以任意的一堆中取走你想取走的纸牌张数,二、可以取走两堆中相同张数的纸牌,三、两人轮流取纸牌,最后把纸牌取完的胜。现在Z先取,问最后Z是胜还是败。(Z和C都很聪明,都采用最好的策略)

Input:

输入包含若干行,每行表示一局,其中每一行包含两个非负整数n和m,表示两堆纸牌的数目(n*m<1000 000 000).
Output:
输出对应也是若干行,每行输出不是Z就是C,如果Z胜,则输出Z,否则输出C。
Sample Input:
2 4
6 9
4 7
Sample Output:
Z
Z
C
 
这是第一种简单的尼姆博弈题,它有一个固定的模板,下面直接给出模板代码:
1 #include
2 #include
3 int main(void) 4 { 5 double a,b; 6 int big,small,n,temp1,temp2; 7 while(scanf("%d%d",&small,&big) != EOF) 8 { 9 a = (1 + sqrt(5))/2;//黄金分割矩形10 b = (3 + sqrt(5))/2;11 if(small > big) {big ^= small;small ^= big,big ^= small;}//位运算交换两个变量的值12 n = ceil((big/b));//ceil函数的作用是求不小于给定实数的最小整数。ceil(2)=ceil(1.2)=cei(1.5)=2.00使用该函数需要包含头文件
,该函数返回值为浮点型。13 temp1 = a*n; temp2 = b*n;14 if(small == temp1 && big == temp2) puts("C");//后手胜15 else puts("Z");//先手胜16 }17 18 return 0;19 }
View Code

尼姆博弈(二)

Description:

Z和C准备一个游戏,游戏是这样的,一开始桌上放有n堆纸牌,每次每个人能从任意一堆里面取走任意张纸牌,直到某个人无法取走纸牌为止,不能再取纸牌的人就为输。总是由Z开始。(假设Z和C都很聪明,都用最好的策略)

Input:

输入包含多组测试数据,每组测试数据占一行包括n+1个数字,第一数字为n,接下来n个数字代表每堆纸牌的张数,每堆的纸牌数量不会超过100 00 00,堆数n不会超过20,且大于1.
Output:
对于每组测试数据输出一行,如果Z能赢输出“Z”,否则输出“C”。
Sample Input:
2 45 45
3 3 6 9 
Sample Output:
C
Z
 
这又是另一种简单的尼姆博弈,这种题也有一个固定的模板。只要将每堆牌的牌数进行异或和,如果最终异或和的值为0,则后手胜;否则,先手胜。下面给出这题的代码:
1 #include
2 3 int main(void) 4 { 5 int n,ans,m; 6 while(scanf("%d",&n) != EOF) 7 { 8 ans = 0; 9 while(n--)10 {11 scanf("%d",&m);12 ans ^= m;13 }14 if(ans == 0) puts("C");15 else puts("Z");16 }17 18 return 0;19 }
View Code

 

 
 

转载于:https://www.cnblogs.com/Muia/p/5755349.html

你可能感兴趣的文章
内存地址对齐
查看>>
看门狗 (监控芯片)
查看>>
css背景样式
查看>>
JavaScript介绍
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
Chapter 3 Phenomenon——12
查看>>
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>