博弈论
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
博弈论——Life Winner Bo ( HDU 5754 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754分析: 给出国际象棋中四种棋子:王,后,车,马;按照国际象棋中的走法,从(1, 1)走到(N, M)点,B先走,G后走,谁赢输出谁的名字,平局输出D。题解: 直接画图分析每种棋子的必胜策略: ①王。首先注意一个3*3的棋盘,开始在(1,1),问走到(3,3)谁有必胜策略。穷举所有情况转载 2016-07-26 21:12:05 · 346 阅读 · 0 评论 -
博弈论 —— The Game of Parity ( CodeForces 549C )
题目链接: http://codeforces.com/problemset/problem/549/C分析: 这道博弈论重在分清楚情况,偶数人数的城多一座少一座并不会改变最终剩余人数的奇偶性,只有奇数人数的城市的数量会对结果产生影响。题解: 首先先算出奇数人数城市的数量Odd和偶数人数城市的数量Even,再算出可以操作的总次数T。如果T/2大于Odd,那么Daenerys就可以把所有奇数原创 2016-07-14 13:21:59 · 492 阅读 · 0 评论 -
博弈论 ( Nim游戏+SG模板)——S-Nim ( HDU 1536 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1536分析: 给出K种拿石子的方法,然后给出I堆石子让你判断当前位置是必胜点还是必败点。题解: 对于每次给出的K种拿法,先用SG函数预处理一遍,然后直接异或每一堆石子的数量就能得到其最终结果SG函数模板:const int MAX = 10005;//总的石子数int f[105], sg原创 2016-08-06 11:18:16 · 554 阅读 · 0 评论 -
博弈论 ( 斐波那契博弈 )——取石子游戏 ( HDU 2516 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2516分析: 游戏规则: ① 先手不能一次取完所有石子 ② 之和每次可以取得的石子数在1~上次对方取的石子数的两倍之间(闭区间) ③先取完的获胜题解: 通过数学归纳法找规律,得出必败数。 过程:2块石头:先手败3块石头:先手败4块石头:先手赢(先取1,后者怎么取,先手都能赢)5块原创 2016-08-06 14:28:07 · 1505 阅读 · 0 评论 -
博弈论 (简单博弈分析)——Coin Game ( HDU 3951 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3951分析: 给出N个硬币围成一个圈,每次最多取K个连续的硬币(若两个硬币间有空缺,则不连续),给出N和K的值,求是先手赢还是后手赢。题解: 读完题后看起来觉得情况比较复杂,甚至还想过用SG值来异或每一次被断开的两条链,不过仔细分析一下发现很简单。若N≤K,肯定先手赢若N>K,那么先手取完后原创 2016-08-06 16:15:07 · 482 阅读 · 0 评论 -
博弈论 (Nim 博弈)—— HDU 1907 && HDU 2509
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1907分析: 这是一道非常经典的Nim博弈,我们需要特殊判断一下每一堆石子都为1的情况,然后对于其它情况,只需要将每一堆石子的数量异或在一起,最终为1就是先手先拿完,为0就是后手先拿完。AC代码:#include<iostream>const int MAX=5000;using names原创 2016-08-07 10:54:57 · 483 阅读 · 0 评论