UVA 11534 - Say Goodbye to Tic-Tac-Toe
题目链接
题意:给定一个序列,轮流放XO,要求不能有连续的XX或OO,最后一个放的人赢,问谁赢
思路:sg函数,每一段...看成一个子游戏,利用记忆化求sg值,记忆化的状态要记录下左边和右边是X还是O即可
代码:
#include
#include
const int N = 105;...
分类:
数据库 时间:
2014-07-18 22:34:57
阅读次数:
434
UVA 11927 - Games Are Important
题目链接
题意:给定一个有向图,结点上有一些石头,两人轮流移动石头,看最后谁不能移动就输了,问先手还后手赢
思路:求出每个结点的sg函数,然后偶数个石头结点可以不用考虑,因为对于偶数情况,总步数肯定能保证是偶数,所以只要考虑奇数情况的结点
代码:
#include
#include
#include ...
分类:
其他好文 时间:
2014-07-18 21:32:27
阅读次数:
224
UVA 10561 - Treblecross
题目链接
题意:给定一个串,上面有'X'和'.',可以在'.'的位置放X,谁先放出3个'X'就赢了,求先手必胜的策略
思路:SG函数,每个串要是上面有一个X,周围的4个位置就是禁区了(放下去必败),所以可以以X分为几个子游戏去求SG函数的异或和进行判断,至于求策略,就是枚举每个位置就可以了
代码:
#include
#...
分类:
其他好文 时间:
2014-07-16 16:42:36
阅读次数:
350
UVA 1482 - Playing With Stones
题目链接
题意:给定n堆石头,每次选一堆取至少一个,不超过一半的石子,最后不能取的输,问是否先手必胜
思路:数值很大,无法直接递推sg函数,打出前30项的sg函数找规律
代码:
#include
#include
int t, n;
long long num;
long long SG(long ...
分类:
其他好文 时间:
2014-07-16 14:47:36
阅读次数:
206
HDU 1847 Good Luck in CET-4 Everybody! (博弈论sg)
解题思路:
1、用博弈论sg函数可以解
根据NP图的关系,发现 n%3=0时,Cici赢,否则Kiki赢
2、用DP去解,用dp[n][f] 表示还剩n张牌时,f先走,谁赢。...
分类:
其他好文 时间:
2014-07-06 12:37:25
阅读次数:
154
HDU 1517 A Multiplication Game (博弈-求sg)
题目大意:
Stan 和 Ollie 两个人玩游戏, 一开始数字是 1,两个人轮流,Stan 先手,每个人选择 2~9 里面的一个一直乘以起初的数字,直到某个人乘到 这个数大于等于 n 就算赢,n给定,问你谁必然赢。
解题思路:
这题我没找出SG函数(必胜必输)的规律,只能用DP的方法求出每种状态的必胜必输状态。
2~9 ,依次其实可以用 2 3 5 7 这几个数得到,因此每个状态只需要记录2 3 5 7 这几个数的...
分类:
其他好文 时间:
2014-07-06 12:16:39
阅读次数:
234
HDU 2897 邂逅明下 (经典博弈变形)
解题思路:
这题还是运用到了经典的博弈论的核心思想,也就是总共 n 个 ,每次取值范围是 [p,q] ,两个人玩的话,你取p个,我就取q个,你取p+1个,我就取q-1个....... 每轮总和始终保持p+q,所以考虑对p+q求余即可,这题就用了这个思想。当然也可以通过SG函数来提取必胜和必输状态。
这题还有:小于p个必须取完,其实等于p也必须取完,因为最少取p个,
先特判一下n是否<=p
然后减掉p个,然后求余,但是求余的结果超过q的话不能一次取完。...
分类:
其他好文 时间:
2014-07-06 11:56:12
阅读次数:
160
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1944
http://acm.hdu.edu.cn/showproblem.php?pid=1536
给定每一次可以取的石头数,给定很多种情况,每一种情况有若干堆石头,判断先手胜负。
SG函数打表,然后直接抑或,判断结果是否为0,第一次写SG函数,贴...
分类:
其他好文 时间:
2014-07-06 10:02:13
阅读次数:
196
HDU 3032 Nim or not Nim? (sg函数求解)
题目大意:
Alice和Bob轮流取N堆石子,每堆S[i]个,Alice先,每一次可以从任意一堆中拿走任意个石子,也可以将一堆石子分为两个小堆。先拿完者获胜。(1 ≤ N ≤ 10^6, 1 ≤ S[i] ≤ 2^31 - 1)
解题思路:
对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x]
例如:取石子问题,有1堆n...
分类:
其他好文 时间:
2014-07-06 00:44:38
阅读次数:
339
HDU 2149 Public Sale (博弈论经典)
解题思路:
这题运用到了经典的博弈论的核心思想,也就是总共 m 个 ,每次取值范围是 [1,n] ,两个人玩的话,你取1个,我就取N个,你取2个,我就取N-1个....... 每轮总和始终保持N+1,所以考虑对n+1求余即可,这题就用了这个思想。当然也可以通过SG函数来提取必胜和必输状态。...
分类:
其他好文 时间:
2014-07-06 00:06:06
阅读次数:
325