博弈论
文章平均质量分 62
Ostrichcrab
这个作者很懒,什么都没留下…
展开
-
hdu 1846&2149&2147 巴什博奕
巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。 n=(m+1)*r+s; s不为零是先手胜利 #include<bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--){ ...原创 2018-05-20 19:56:43 · 152 阅读 · 0 评论 -
hdu 2516 斐波那契博弈
有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n为Fibonacci数的时候,必败。f[i]:1,2,3,5,8,13,21,34,55,89……证明就略了吧,可以看其他的博客,我就简单记下结论#include...原创 2018-05-21 21:00:58 · 136 阅读 · 0 评论 -
威佐夫博弈 poj 1067
威佐夫博弈(Wythoff Game):有两堆各若干的物品,两人轮流从其中一堆取至少一件物品,至多不限,或从两堆中同时取相同件物品,规定最后取完者胜利。直接说结论了,若两堆物品的初始值为(x,y),且x<y,则另z=y-x;记w=(int)[((sqrt(5)+1)/2)*z ];若w=x,则先手必败,否则先手必胜。#include<bits/stdc++.h> using ...原创 2018-05-21 21:33:02 · 120 阅读 · 0 评论 -
尼姆博弈 hdu 1850
Nim博弈题意:有m堆牌,两个人先后取某堆中的任意(不少于一)张牌,最后取完者胜;问先手取胜第一次取牌有多少种取法。思路:1)如若给出 的是必败状态:a1^a2^......^an=0,则先手不会有任何可能获得胜利; 2)若给出的是必胜状态:a1^a2^.......^an=k,(其中k不为零),那么我们的目的是要把必胜状态 转化为必败状态从 而使得先手胜利。若a...原创 2018-05-21 22:22:26 · 174 阅读 · 0 评论 -
SG函数 hdu 1847 1848
#include<bits/stdc++.h> using namespace std; int n,arr[15],sg[1005]; int mex(int x) { if(sg[x]!=-1) return sg[x]; bool vis[1005]; for(int i=0;i<1005;i++) vis[i]=false; ...原创 2018-05-22 23:16:49 · 158 阅读 · 0 评论 -
第十一届ACM河南省赛 Attack City and Capture Territory(Nim博弈)
提交地址点击打开链接裸Nim博弈The Three Kingdoms period was a relatively famous period in the history of China. From the Battle of Chibi (AD 211) to the reunification of China in the Western Jin Dynasty(AD 280). Du...原创 2018-06-01 17:41:30 · 675 阅读 · 0 评论