博弈
呆呆与笨笨
梦想是被追逐的,而不是幻想的
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
博弈入门
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态) (一)巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) !=转载 2014-08-14 09:09:16 · 483 阅读 · 0 评论 -
hdu 2188 选拔志愿者(巴士博弈)
巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果 n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走 k(≤原创 2014-08-14 09:07:18 · 776 阅读 · 0 评论 -
南阳 833 取石子(对称的博弈)
可以这样想,将这堆石子分成两堆完全相等的石子堆,无论自己做出什么状态的策略,对方只要在另一堆 采取相同的策略就可以回到初始状态(双方相等的状态),最后自己这一堆先没了石子,对手则取走对手堆 的最后一块,所以这是必败态,而面对N>2 石子 对手都可以使之变成两堆相等的石子,做出对称状态在完全 模拟对手常常是有效的原创 2014-08-14 21:38:56 · 476 阅读 · 0 评论 -
南阳 161 取石子 (四)(威佐夫博弈)
#include #include #include using namespace std; int main() { int n,m,temp; while(~scanf("%d%d",&n,&m)) { if(n>m) { swap(n,m); } temp=floor((m-n)原创 2014-08-15 21:42:40 · 502 阅读 · 0 评论 -
南阳 585 取石子(六)(尼姆博弈)
#include #include #include using namespace std; int main() { int t,n,a,sum,i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=sum=0;i<n;i++) { sc原创 2014-08-15 21:41:32 · 593 阅读 · 0 评论 -
南阳 135 取石子(二)(巴什博弈+尼姆博弈)
#include #include #include using namespace std; int main() { int n,m,s,t,a,b,i; scanf("%d",&t); while(t--) { scanf("%d",&n); for(s=i=0;i<n;i++) { sc原创 2014-08-15 21:44:30 · 464 阅读 · 0 评论 -
南阳 358取石子(五)(斐波那契博弈)
#include #include #include using namespace std; long long num[100],a[100]; int j; void fun() { int i; num[0]=1;num[1]=1; for(j=0,i=2;i<92;i++) { num[i]=num[i-1]+num[i-2];原创 2014-08-15 21:37:40 · 644 阅读 · 0 评论
分享