POJ 1067 取石子 Wythoff 博弈
来源:互联网 发布:淘宝里猜你喜欢在哪里 编辑:程序博客网 时间:2024/06/05 20:49
地址:点击打开链接
威佐夫博弈:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。
结论:对于非奇异局势,先拿者必胜,对于奇异局势,先拿者必败。
对于奇异局势,有如下公式:
a[k]=[k*(1+√5)/2],b[k]=a[k]+k。(k=0,1,2......,[]表示取整)
式中的(1+√5)/2正是黄金分割比例。
取石子游戏
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 41856 Accepted: 14124
Description
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
Input
输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。
Output
输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。
Sample Input
2 18 44 7
Sample Output
010
#include <stdio.h>#include <math.h>const double Gsr=(1+sqrt(5.0))/2;void swap(int &a,int &b){ int t=b; b=a; a=t;}int main(){ int a,b; while(~scanf("%d%d",&a,&b)) { if(a>b) swap(a,b); if(a == (int)(Gsr*(b-a))) //如果是奇异局势,先拿者输 printf("0\n"); else printf("1\n"); } return 0;}
阅读全文
0 0
- [Wythoff博弈] poj 1067 取石子游戏
- POJ 1067 取石子 Wythoff 博弈
- poj 1067 取石子游戏(博弈+威佐夫博奕(Wythoff Game))
- Poj 1067 取石子游戏 Wythoff Game
- POJ 1067 威佐夫博弈(Wythoff Game)问题 (取石子游戏)
- POJ 1067 wythoff博弈
- HDU 1527 (POJ 1067) 取石子游戏 Wythoff Game
- POJ 1067 取石子游戏 威佐夫博奕 Wythoff Game
- POJ 1067 取石子游戏 (威佐夫博奕 Wythoff Game 模板)
- Poj 1067 取石子游戏 (博弈)
- POJ 1067 取石子游戏 (博弈)
- poj 1067 取石子游戏(博弈)
- POJ 1067 取石子游戏 威佐夫博弈
- POJ 1067 取石子游戏 <威佐夫博弈>
- POJ 1067 取石子游戏 威佐夫博弈
- 杭电hdu 1527 取石子游戏 Wythoff Game 博弈
- HDU 1527 取石子游戏 威佐夫博弈 Wythoff
- [POJ](1067)取石子游戏 ---威佐夫博弈(博弈)
- Linux的吉祥物企鹅的名字?
- 【大数据部落】基于决策树的银行信贷风险预警模型
- 微信小程序推荐大全之201~300个
- git add详解
- undefined symbol: node_module_register 错误原因
- POJ 1067 取石子 Wythoff 博弈
- 【大数据部落】WEKA文本挖掘分析垃圾邮件分类模型
- java集合框架之List实现类的性能分析
- 面试题6_重建二叉树
- 朴素贝叶斯算法学习笔记(二)使用算法进行交叉验证
- PHP经典实例读书笔记 (类和对象)
- 微信小程序大全之100荐:301~400
- 欢迎使用CSDN-markdown编辑器
- 【大数据部落】用R Shiny生态快速搭建交互Web网页APP应用