
博弈
文章平均质量分 63
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
bestcoder #9 1002(hdu4994)Revenge of Nim(博弈)
题目地址:HDU 4994在这个题中,谁拥有了第一个大于1的数的控制权,就是谁赢,因为它可以有两种选择,一种是全选,另一种是选n-1个,此时另一个只能选剩下的那一个。但是当数位1的时候是没法控制的,只能选这一个。这时候就可以在每次选一个大于1的数的时候,就通过这两种选择,来让自己会正好选下一个大于1的数,由于中间的全是1,所以完全可以达到目的。这样只要控制了第一个大于1的数,那后面的就可以通过原创 2014-09-12 22:53:47 · 988 阅读 · 0 评论 -
HDU 2897 邂逅明下(SG博弈论)
题目地址:HDU 2897本来这题可以用NP状态转换,但是数据太大,所以可以通过打表sg函数值,来找出规律。感觉sg函数打表就是利用的NP状态转换的那两条规则。通过打表可以发现,从1开始,连续p个0,然后接着连续q个正整数,然后再连续p个0,接着连续q个正整数,就这样循环下去。所以规律就很明显了。代码如下:#include #include #include #include原创 2014-09-16 19:35:34 · 1474 阅读 · 0 评论 -
HDU 1564 Play a game(博弈)
题目地址:原创 2014-09-16 15:57:18 · 966 阅读 · 0 评论 -
POJ 2348 Euclid's Game(博弈)
题目地址:POJ 2348每一步只有如下三种情况:(假设a>=b)1:a%b==0 这时候自然是必败态。2:a3:a>2*b 这时候是必胜态。为什么呢?因为此时总可以转移到一个必败态。由于第2情况的时候两种状态是交替的,而这时候由总可以转换成(a,a%b)和(a,a%b+b),而(a,a%b+b)与(a,a%b)又属于第2种情况的相邻的,所以必有一个是必败态。根据只要能达到原创 2014-09-15 21:06:41 · 1008 阅读 · 0 评论 -
HDU 2516 取石子游戏(斐波那契博弈)
题目地址:HDU 2516当且只当n是一个斐波那契数的时候是必败态。可以写出几组数据找规律就可以发现这个规律。证明如下:就像“Wythoff博弈”需要“Beatty定理”来帮忙一样,这里需要借助“Zeckendorf定理”(齐肯多夫定理):任何正整数可以表示为若干个不连续的Fibonacci数之和。先看看FIB数列的必败证明:1、当i=2时,先手只能取1颗,显然原创 2014-09-16 11:56:28 · 1334 阅读 · 0 评论 -
HDU 1730 Northcott Game(nim博弈)
题目地址:HDU 1730由于原创 2014-09-16 14:19:02 · 723 阅读 · 0 评论 -
HDU 1517 A Multiplication Game(博弈论)
题目地址:HDU 1517NP状态转换。可以把题目的向上乘变成向下除。这样1是终结状态,设1的时候为必败点。根据所有能一步到达必败点的点是必胜点,所以[x,x*9]必胜点;根据只能到达必胜点的点是必败点,所以[x*9+1,x*9*2]是必败点.然后求解。代码如下:#include #include #include #include #include #inclu原创 2014-09-16 14:07:56 · 1007 阅读 · 0 评论 -
POJ 1067 取石子游戏(威佐夫博奕)
题目地址:POJ 1067威佐夫博弈模型。判断奇异局势。根据面对非奇异局势,先拿者必胜;反之,则后拿者取胜。判断奇异局势只用一个公式来判断就行。假设b>a,若a==(int)(b-a)*(1+sqrt(5))/2,则说明是此时是奇异局势。具体证明请看百度百科。。本渣实在是看不了。。先证明了8个定理,然后用这8个定理推出来了这个公式,而且后两个定理还是比较高级的数学定理,给跪了。原创 2014-09-16 10:47:26 · 1176 阅读 · 0 评论 -
POJ 1704 Georgia and Bob(nim博弈论)
题目地址:POJ 1704这个题实在巧妙。。居然这样就可以转化成了经典的nim模型。这题可以从左往右两两配对,如果是奇数个的话,就让最左边的与0配对。然后每当对方移动某一对的前一个,你总可以移动该对的后一个来移动回来。所以这是没有影响的。有影响的只是每一对中间的空格数。这就转化成了((n+1)/2)堆石子的游戏,每一堆的石子个数是每一对点之间的空格数。然后用异或求解。代码如下:#i原创 2014-09-15 21:45:55 · 1187 阅读 · 0 评论 -
HDU 1847 Good Luck in CET-4 Everybody!(巴什博弈论)
题目地址:HDU 1847这题可以用NP状态转换。首先0的时候就代表无法出牌了,所以是必败态。然后根据每一个可以一步到达必败态的是必胜态,不可以一步到达必败态的是必败态。可以推出状态转移方程,然后用DP求解。即从已知状态向未知状态转移,就是从小的向大的转移,假如它的下一步没有必败态,则它是必败态,若下一步有一个必败态,那它就是必胜态。代码如下:#include #include原创 2014-09-15 20:06:43 · 1136 阅读 · 0 评论 -
POJ 2484 A Funny Game(博弈)
题目地址:POJ 2484很简单的智力题。。。当n>4时候,后手方完全可以根据剩下的奇偶情况使得剩下了偶数个并且对称,然后每当先手出一次,后手就可以模仿着先手在对称的地方出一次,这样的话,后方是必胜的。代码如下:#include #include #include #include #include #include #include #include #include原创 2014-09-15 19:31:42 · 963 阅读 · 0 评论 -
HDU 1850 Being a Good Boy in Spring Festival(nim博弈)
题目地址:HDU 1850这个博弈论异或这个地方感觉真绕,仔细想了一下,终于把它给理清楚了。总结一下之前不太理解的:1:在当前操作中,只要可以达到某个必败态,那这个点一定是必胜态的,因为要想获胜,肯定会选择必败态的操作。2:只有当所有值的异或值为0的时候,才是必败态,所以说对于N堆的nim游戏来说,第一步的操作对于每一堆来说只能有至多一种可以形成必败态。因为另外(n-1)堆的异或值是唯原创 2014-09-15 15:41:53 · 1026 阅读 · 0 评论 -
HDU 2149 Public Sale(巴什博弈论)
题目地址:HDU 2149简单的博弈论,跟上道题差不多。只不过再把出价的值输出一下就可以了。#include #include #include #include #include #include #include #include #include #include #include using namespace std;int a[2000];int m原创 2014-09-14 19:58:10 · 1020 阅读 · 0 评论 -
HDU 5011 Game(博弈论)
题目地址:HDU 5011比赛的时候看那么多人过直接傻眼了。。无奈,这题是真不会做,博弈论一点不会,得好好补补了。没想到这题的代码竟然是这样。。当时想了好多水的方法乱蒙也没水过去。。代码如下:#include #include #include #include #include #include #include #include #include #include原创 2014-09-14 19:25:38 · 1580 阅读 · 1 评论 -
HDU 2147 kiki's game(巴什博弈论)
题目地址:HDU 2147又是一道NP状态转换的巴什博弈。这题根据NP状态转移最好画个表格,规律就很直观了。博弈么,从左下角往前推:P→到达该点后,下一个人必败。N→到达该点后,下一个人必胜。显然,最左下角的点是P。然后根据经过一步操作可到达必败状态的都是必胜状态,下一步操作都是必胜状态,那么这步操作时必败状态的原则一步步的去画表格就可以了。原创 2014-09-14 21:16:02 · 1436 阅读 · 0 评论 -
HDU 1849 Rabbit and Grass(nim博弈)
题目地址:HDU 1849初次接触nim博弈,感觉好神奇的说。。。居然可以跟异或运算扯上关系。。。。给人类的智商跪了。。。作为地球人我感到很自豪。。具体证明什么的看这篇博客被。传送门代码如下:#include #include #include #include #include #include #include #include #include #inc原创 2014-09-14 20:33:51 · 967 阅读 · 0 评论 -
HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈论)
题目地址:HDU 2188当n=m+1时,由于一次最多只能取m个,所以无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜,所以当一方面对的局势是n%(m+1)=0时,其面临的是必败的局势。所以当n=(m+1)*r+s,(r为任意自然数,s≤m)时,如果先取者要拿走s个物品,如果后取者拿走x(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,原创 2014-09-14 19:39:40 · 1172 阅读 · 0 评论 -
HDU 3032 Nim or not Nim?(sg函数博弈)
题目地址:HDU 3032这题是很好用来练习sg函数打表的一题。下面是sg函数值打表代码:#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long l原创 2014-09-16 21:25:16 · 1237 阅读 · 0 评论