博弈
varinic
这个作者很懒,什么都没留下…
展开
-
博弈论合集
hdu 1847 #include #include #include #include using namespace std; int dp[1003]; int main() { int p[30]; p[0]=1; for(int i=1;i<20;i++){ p[i]=p[i-1]<<1; } memset(dp,0,si原创 2016-07-24 22:17:19 · 777 阅读 · 0 评论 -
hdu 1809 sg函数
这道题目我一定要好好吐槽一下,二维char数组表示成一维string,用来表示状态,然后求sg函数值用记忆化搜索,然后就一直WA,心好累差点怀疑人生,QAQ。后来发现记忆化搜索代码加上 if(vis[str])return sg[str]; 就WA,所以肯定这里出问题,后来一想,这种状态表示有毒,例如5x4与4x5的矩阵显然不同,但是展开成一维string时显然可以得到相同string,所以二维展原创 2016-07-30 11:34:04 · 496 阅读 · 0 评论 -
hdu 5795 A Simple Nim
题意:n堆石子,每次从一堆取若干个,或者把一堆分成非空的三堆(这时不能取)。 求sg,如果一堆有x个,那么对取来说它能转移到的状态为0,1,2,.... x-1 ,如果分三堆,可以类比剪纸的博弈游戏(poj 2311 http://poj.org/problem?id=2311),只要对分成的三部分取异或,就代表x所能转移到的下一状态。 然后打表找规律就可以了。 #include原创 2016-08-04 17:11:54 · 660 阅读 · 0 评论 -
FOJ 有奖月赛 2016-8 C Problem C Daxia & Suneast's problem
Problem Description daxia和suneast玩起来取石子游戏,现有n堆石子放成一排,每堆石子颗数为a1,a2,...,an. 然后开始m轮游戏,每轮游戏之前,suneast先把第i堆的石子改成x颗,然后双方开始在第j堆到第k堆之间进行取石子游戏. 取石子规则如下: 1. daxia先取,然后双方轮流,每次取的数量不得超过该堆的一半; 2. 当轮到某一方,而其不能原创 2016-08-17 18:08:14 · 991 阅读 · 0 评论