博弈论-求出sg
炒饭君
这个作者很懒,什么都没留下…
展开
-
HDU 3649 New Game
HDU 3649 New Game 题目大意: 首先告诉你0或1,0表示红色先手,1表示黑色先手,接下来四个数字表示 红方 A,B,C,D四个子的位置,在接下来四个数字表示黑方 A,B,C,D四个子的位置。 游戏规则如下: (1) the piece red acm can be placed on A1~,A2,A3,A4,A5;the piece black acm A6~A10; (2) the piece red bahamas can place on B1~B5; the piece bla原创 2014-05-26 21:47:05 · 1171 阅读 · 0 评论 -
ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)
ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数) 题目大意: 给定n个数字,两个人轮流玩游戏,把这n个数字变成n的因子(不包含本身),最后全变成1就赢了,问你谁会赢,如果Alice赢了,把第一步选择的那一个数字的序号输出,如果有多种方案,输出序号小的。 解题思路: sg[1]=0; sg[2]=mex{sg[1]}=1; sg[3]=mex{sg[1]}=1; sg[4]=mex{sg[2],sg[1]}=2; sg[5]=mex{sg[1]}=1; sg[原创 2014-07-05 19:07:28 · 1018 阅读 · 0 评论 -
HDU 3032 Nim or not Nim? (sg函数求解)
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-05 15:56:07 · 812 阅读 · 0 评论 -
HDU 1517 A Multiplication Game (博弈-求sg)
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-05 11:54:19 · 1334 阅读 · 0 评论 -
HDU 3537 Daizhenyang's Coin(博弈-sg)
HDU 3537 Daizhenyang's Coin(博弈-sg) 题目大意: 有一排硬币,告诉 你n个正面朝上的硬币的位置,你可以选择任意位置的1~3个硬币翻转一下,但是问你先手是否会输。 解题思路: 通过求sg发现规律 sg 1 2 4 7 8 11 13 14 x 0 1 2 3 4 5 6 7 找到规律,sg[x],如果x的二进制1的个数为奇数,sg[x]=2*x ,否则 sg[x]=2*x+1; 然后把各个Sg的值异或最终就是答案原创 2014-07-05 21:20:45 · 1284 阅读 · 0 评论 -
HDU 1847 Good Luck in CET-4 Everybody! (博弈论sg)
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-04 19:00:51 · 723 阅读 · 0 评论 -
HDU 1079 Calendar Game (博弈论-sg)
HDU 1079 Calendar Game (博弈论-sg) 题目大意: 给定日期,轮流来,可以在日期的月上加1,或者在天数上加1 ,如果约数上加1无效,自动转化为在天数上加1,轮流来,问先手是否赢? 解题思路: 这很明显是道博弈题,对于SG的性质定义 必胜态记为P,用数值0表示,当且仅当其后继都是 N,也就是SG()>0 必输态记为N,用数值1表示,当且仅当其后继存在P,也就是SG()=0 对于这题,完全没必要这样用SG去推理,可以结合DP,用记忆化搜索划分为子问题,每一步取对自己最优的。原创 2014-06-19 18:04:52 · 994 阅读 · 0 评论