博弈
leolin_
这个作者很懒,什么都没留下…
展开
-
codeforces C. Beaver Game 博弈
<br />http://codeforces.com/contest/78/problem/C<br /> <br />//博弈//题意是说一个人可以把一条木棒一次折成相等的几段,一开始没看到no less than以为不大于k(靠,英语太烂了)//如果木棒数目为偶数时,后取的必胜,只要重复先者操作就ok;奇数时,只要判断一条时的情况就可以得出结果,//因为后面就是偶数的情况了#include<stdio.h>#include<math.h>int main(){ int原创 2011-04-30 17:11:00 · 584 阅读 · 0 评论 -
hdu 2149【巴什博奕】
http://acm.hdu.edu.cn/showproblem.php?pid=2149简单的bash博弈,如果满足m%(n+1)==0,则先手败(必败态),因为可以这样想:每轮后手总可以造出n+1这样的情况,最后明显是后手必胜。但是当m%(n+1)!=0,则先手要不原创 2011-08-05 21:18:24 · 713 阅读 · 0 评论 -
【博弈论】
寻找平衡状态(也称必败态,奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态)(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取p个,最多取q个.最后取光者得胜.n = (m+1)r+s , (r为任意自然数,s原创 2011-08-05 20:46:42 · 718 阅读 · 0 评论 -
【Nim博弈与SG函数】
Nim游戏 Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG)。满足以原创 2011-09-18 00:03:15 · 782 阅读 · 0 评论 -
【dfs博弈】HDU 4155
一开始理解错题意,以为每个人各自有一堆,后来发现是总共才有1堆,问谁会使得堆的和大于31就是输,可以看出31是必胜点,每个人最优的策略是使得自己到达31,因此可以dfs,利用回溯把每个状态输赢求出来,类似于dp,从后往上推。状态的话可以用一个七维数组记录char str[200];int dp[33][5][5][5][5][5][5];int num[10];int lin(int原创 2012-02-19 13:00:30 · 642 阅读 · 0 评论 -
【博弈题目】
poj-2234:poj-2484:poj-1704:poj-1067:poj-2505:poj-3480:poj-1740:poj-2348:poj-1082:poj-2960poj-2425poj-2505poj-2311:hdu2147 筛法找规律。1850 SG和的简单应用,原创 2012-03-05 00:44:29 · 525 阅读 · 0 评论 -
3种常见博弈
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,转载 2012-04-05 15:07:53 · 520 阅读 · 0 评论 -
【威佐夫博奕】POJ 1067
威佐夫博奕......int main(){ int a,b,k,tmp; while(scanf("%d%d",&a,&b) !=-1){ if(a>b){ swap(a,b); } k = b-a; tmp = floor(k*(1.0+sqrt(5.0))/2.0);原创 2012-04-05 19:22:26 · 781 阅读 · 0 评论