http://poj.org/problem?id=1067取石子游戏Time Limit:1000MSMemory Limit:10000KTotal Submissions:36753Accepted:12446Description有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游...
分类:
其他好文 时间:
2015-07-11 01:05:43
阅读次数:
206
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1527
hint:威佐夫博弈#include
#include
#include
#include
using namespace std;
const double k=(sqrt(5.0)-1.0)/2.0;
int m...
分类:
其他好文 时间:
2015-06-19 10:41:17
阅读次数:
129
又是一道博大精深的博弈题目。
已经说了 巴什博弈,威佐夫博弈,尼姆博弈,SG函数,找规律的博弈,这次和找规律有点类似——对称博弈。
一般都是圆啊方啊什么的。
对于这道题而言,可以有三种情况:
①k等于1 一次最多只能拿1个(每堆只有一个),那就是看奇偶了。
②n≤k 这种情况,那肯定先拿的赢。
③ 这条就是对称博弈了, 除了上述两种情况外的情...
分类:
其他好文 时间:
2015-05-06 23:04:24
阅读次数:
287
//ak =[k(1+√5)/2],bk= ak + k (k=0,1,2,...n 方括号表示取整函数)
//即(bk-ak)==ak*(√5-1)/2 或 (bk-ak)+ 1==ak*(√5-1)/2即输
#include
#include
#include
#include
using namespace std ;
int main()
{
int n , m;...
分类:
其他好文 时间:
2015-04-11 00:06:48
阅读次数:
133
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。如果你胜,你第1次怎样取子?...
分类:
其他好文 时间:
2015-03-30 18:54:50
阅读次数:
209
尼姆博弈(Nimm Game)
http://baike.baidu.com/link?url=QITS5sNMwXZsoxh5tAwYBsa-_GgUd66Vb4fjreoKkqlXmXSyPEE5qVXfxnq1IGRe4AgTxC6lFwROoKx7hZNwbK
威佐夫博弈(Wythoff Game)
http://baike.baidu.com/link?ur...
分类:
其他好文 时间:
2015-02-04 16:48:58
阅读次数:
109
题意:default是汉语,自己看去。
题解:
威佐夫博弈这种恶心东西,“正常”解法是打表找规律。
但是我自认为找不出来这种规律,考试要是出了这种题……
就随便输出一个来期望50分吧。。
要是每个测点都多组数据……那……就随机输出0/1期望10分吧。
要是多组数据的组数太多,那就按照表来乱搞。
小数据打表输出,大数据233。
威佐夫用的是黄金分割数。(网上查的)
下面是代...
分类:
其他好文 时间:
2015-01-10 16:38:48
阅读次数:
205
取石子(八)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。...
分类:
其他好文 时间:
2014-09-21 10:35:30
阅读次数:
221
Wythoff Game
时间限制:1000 ms |
内存限制:65535 KB
难度:1
描述
最近ZKC同学在学博弈,学到了一个伟大的博弈问题--威佐夫博弈。
相信大家都学过了吧?没学过?没问题。我将要为你讲述一下这个伟大的博弈问题。
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。
游戏规定,每次有两种不同的取法:
一是可以在任意的一堆中取走任意多的石子;
...
分类:
其他好文 时间:
2014-09-19 01:11:14
阅读次数:
254
威佐夫博奕。。。。。
代码如下:
#include
#include
int main()
{
int a,b,k,temp,n;
double m;
while(~scanf("%d%d",&a,&b))
{
if(a>b)
{
temp=a;
a=b;
b=temp;
...
分类:
其他好文 时间:
2014-08-12 17:18:44
阅读次数:
158