博弈
文章平均质量分 66
wlhz2017
这个作者很懒,什么都没留下…
展开
-
poj3537 Crosses and Crosses
很久之前做过的一道sg函数的题,当我方选择一个点后,对方选择与此点相邻点和间隔为一的点,都会使我方直接获得胜利,所以当选择点的位置i后,问题转换成2个子问题, 区间i-3和n-i-2的问题求解,而由sg函数可知,sg[i]应该是其每种位置选择对应的2个子区间异或后 没有出现的最小自然数,所以就可以递推出sg[i],而sg[i]非零则先手赢。 #include #include #inclu原创 2015-07-21 09:30:51 · 370 阅读 · 0 评论 -
HDU 5229 ZCC loves strings
一道还不错的博弈题 首先可以看出 先手在两串字符数的和为奇数时必胜 因为只要不断的取其中较短的串的最后一个字符即可 所以在两串字符数的和为偶数时应该是必败的 但因为有条件2的存在 所以当两串相同时 先手也是必胜的 特殊计算下即可 所以先手的获胜方案数 为奇数字符的串个数乘以偶数字符的串个数 (即2串和为奇数的方案数)在加上 串i有a[i]个的C(a[i],2) (a[i]的值可以排序后扫一原创 2015-10-10 16:42:29 · 357 阅读 · 0 评论 -
HDU 4958/BC 5C Poor Rukaw
博弈+概率dp 题目大意:2个人玩游戏,其中甲随手玩。。。乙认真玩,开始n堆石子,每次拿2堆相减后放回去,最后剩奇数甲赢,否则乙赢。赢的得n分,下一轮n堆石子恢复,上轮输者删掉其中一堆,问最后乙得分的期望。 首先,由于是博弈,从必败态开始分析,对于甲来说,最后一次奇数是必胜的,而每次转移状态的操作,只有 拿出两个奇数 变成偶数,奇偶变奇,偶偶变偶三种,不管哪种,奇数数量是减少2个或0个,即每次原创 2015-08-01 11:20:37 · 507 阅读 · 0 评论 -
HDU 5724/2016多校1B Chess
题意:一个博弈中,n行20列的棋盘,给出每行棋子分布,每次可以将一个棋子移至其右侧最近的空位,求先手输赢。 题解:推了快一个小时的规律,结果发现有尼玛规律啊,数据这么小,暴力不就好了嘛...对于某一个状态dfs搜他的子状态,求出每个位置的sg函数,n行的sg值异或起来就是答案了 #include #include #include #include #include #include #inc原创 2016-07-27 09:56:47 · 335 阅读 · 0 评论 -
HDU 4994 / BC 9B Revenge of Nim
题意:n堆石子,每次只能从左面第一个非空堆拿任意个 不能拿者输 其实仔细分析 每堆石子数量只有0 1 和其他3种 其中0就表示要拿下堆 1只能转移到0 多可以转移到0或1 从最右堆倒着推就可以发现 只要你当前操作遇到多 你就可以掌控接下来的局势 即必胜态 而其实面对1也不代表必败 因为可以下一堆也是1 所以可能两个人轮流拿1 直到一个人面对多或拿光了为止 #include #include原创 2016-07-17 16:30:20 · 261 阅读 · 0 评论