POJ 2484(对称博弈)】的更多相关文章

题目:http://poj.org/problem?id=2484 题意:n个石子围成一个圈,两个人轮流取,每次可以取一个石子或者相邻的两个石子,问先手胜还是后手胜 分析: 典型的对称博弈 如果n>=3,那么无论先手如何选择,后手完全可以选择一种方法使得后来剩下的是两条一样长的链,那么无论先手如何操作,后手只要在后来的游戏中采取对称的相同操作,一定可以让对手输…
题目链接题意:有n个硬币排成一圈,两个人轮流操作,每次可以取走一个或者相邻的连个硬币(只算最开始相邻的,取之后才相邻的不算),问先手必胜还是必败. 这个题可以证明若n>=3,则先手必败.对称博弈若n>=3,先手第一次必然把这个环拆成一个链,然后无论这条链长度的奇偶,后手总是可以把这条链分成两条相等的链,于是先手在一条链上做什么,后手就可以做什么.知道先手无法操作,后手胜. #include<iostream> #include<cstdio> #include<a…
对称博弈,注释在代码里 #include<iostream> #include<cstdio> using namespace std; ///这个地方其实是博弈原理里面的对称博弈: ///考虑两种特殊情况,n = 1或者2,这时候先手肯定赢,不用管: ///当n >= 3的时候,硬币就是一个环,先手取完以后变成一个链. ///这个时候后手就一定可以把这个链变成两个相同的链,然后采用跟先手完全相同的手段 ///最后,肯定是后手取完的. int main() { int n;…
A Chess Game Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 3791   Accepted: 1549 Description Let's design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The…
题目链接 题目大意 t组数据(t<=100) 给你一个半径d和步数k,你最开始在原点(0,0)每次可以让x坐标增加k,或者y坐标增加k 两人轮流走,求谁最后不能走了,谁就输了,都是最优博弈 输的条件为下次走的坐标(x,y)都满足\(x^2+y^2>d^2\) 题目思路 就是一个对称博弈 求最远的到达的(kz,kz)使得\((kz)^2+(kz)^2<=d^2\) 如果\((kz)^2+(kz+k)^2<=d^2\) 则先手胜,否则后手胜 因为后手一定有办法使得坐标变为(kz,kz)…
http://poj.org/problem?id=2484 1和2时Alice必胜,3时Bob必胜,其他情况下Bob只需要在Alice取过之后取一次将剩下的硬币链平均分为两份,然后Alice怎么取Bob对称着取就可以了. 真是巧妙. 代码 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #include<ma…
题目链接:http://poj.org/problem?id=2484 这道题目大意是这样的,有n个硬币围成一圈,两个人轮流开始取硬币(假设他们编号从1到n),可以选择取一枚或者取相邻的两枚(相邻是指他们的编号相邻).在双方都采取最优策略取硬币的情况下,问谁最后会赢. 这道题目我一开始没有什么好的办法,n从1试到7,大致能发现n>=3的时候是Bob赢,否则是Alice赢. 可是为什么这样写正确呢?有没有严格一些的证明呢? 我查阅了许多资料,有了下边的理解,可能不是很准确,望纠正. n<=3的时…
A Funny Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4639   Accepted: 2855 Description Alice and Bob decide to play a funny game. At the beginning of the game they pick n(1 <= n <= 106) coins in a circle, as Figure 1 shows. A mo…
相比数据结构的题..感觉这种想啊想的题可爱多了~~~代码量还少.... 题目链接: http://poj.org/problem?id=2484 题意: 一圈n个硬币,两人轮流从中取一或两个硬币,(只能取相邻的两枚硬币),取完的获胜,问谁赢? 分析: 这里注意,连续的硬币中取出若干个后,被分割开的就不算连续的硬币了. 首先还是找是否存在对称状态,只要是存在对称状态,后手模仿先手,最后后手必赢. 假设先手第一次拿走了1或者2个硬币,圈被分裂成一条链,后手在链的中间部位拿走1或者2个硬币,将链分为两…
Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6397   Accepted: 3978 Description Alice and Bob decide to play a funny game. At the beginning of the game they pick n(1 <= n <= 106) coins in a circle, as Figure 1 shows. A move consists i…