POJ 2484 A Funny Game 博弈论 对称博弈

http://poj.org/problem?id=2484

1和2时Alice必胜,3时Bob必胜,其他情况下Bob只需要在Alice取过之后取一次将剩下的硬币链平均分为两份,然后Alice怎么取Bob对称着取就可以了。

真是巧妙。

代码

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<map>
 7 using namespace std;
 8 int m;
 9 int main(){
10     while(~scanf("%d",&m)){
11         if(!m)break;
12         if(m<3)printf("Alice\n");
13         else printf("Bob\n");
14     }
15     return 0;
16 }

时间: 2024-11-02 10:36:38

POJ 2484 A Funny Game 博弈论 对称博弈的相关文章

POJ 2484 A Funny Game(博弈)

题目地址:POJ 2484 很简单的智力题...当n>4时候,后手方完全可以根据剩下的奇偶情况使得剩下了偶数个并且对称,然后每当先手出一次,后手就可以模仿着先手在对称的地方出一次,这样的话,后方是必胜的. 代码如下: #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #include <math.

对称博弈

对称博弈 Coin Game (HDU - 3951) After hh has learned how to play Nim game, he begins to try another coin game which seems much easier. The game goes like this: Two players start the game with a circle of n coins. They take coins from the circle in turn a

[原博客] POJ 2484 A Funny Game

题目链接题意:有n个硬币排成一圈,两个人轮流操作,每次可以取走一个或者相邻的连个硬币(只算最开始相邻的,取之后才相邻的不算),问先手必胜还是必败. 这个题可以证明若n>=3,则先手必败.对称博弈若n>=3,先手第一次必然把这个环拆成一个链,然后无论这条链长度的奇偶,后手总是可以把这条链分成两条相等的链,于是先手在一条链上做什么,后手就可以做什么.知道先手无法操作,后手胜. #include<iostream> #include<cstdio> #include<a

POJ 2484

很明显地,我们知道,当N=1,2时,先手胜.当N=3时,可以把取走中间一个硬币,得到1,1.依然是先手胜.当N=4时,取走中间两点得到1,1,即先手依然取胜.当N=5时,取走中间1点,依然先手胜. 于是,当ALICE取走开头的硬币后,即得到一条链.那么,只需BOB把这条链平均分成两半,做对称操作,即可使ALICE必败. 1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main(){

poj 1079 Calendar Game(博弈论 SG)

Calendar Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2519    Accepted Submission(s): 1438 Problem Description Adam and Eve enter this year's ACM International Collegiate Programming Co

poj 2484 Cow Exhibition 【变形0-1背包】

题目:poj 2484 Cow Exhibition 题意:给出n头牛,每头牛有一个幸运值 si 和聪明值 ti ,现在要选出一些牛,让两个值的和最大,前提是sum(si)和sum(ti)都是非负值. 分析:此题数据量不大,可以暴搜+剪枝水过. 这里要说的是0-1背包的思想,这个题目明显的变形就是物品有两个属性值,而且都要选最大的. 那么我们可不可以把一个值固定下来来求另一个值的最大值,根据0-1背包的思想,定义状态:dp[i]表示装入一些物品使得sum(si)的时候最大的sum(ti)的值.

hdu3951Coin Game(对称博弈)

Coin Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2947    Accepted Submission(s): 1609 Problem Description After hh has learned how to play Nim game, he begins to try another coin game w

每天一道博弈论之“A funny game”(poj 2484)

题意: n枚硬币排成一个环,操作为可以选择相邻的两个取走(相邻指的是最开始相邻,即不会自动补成环).问先手胜还是后手胜. 题解: 首先我们考虑1和2,则明显是先手必胜. 如果大于等于3,那么先手取后一定是一条链.这时我们一定可以把这一条链变成两条相等的链.(如果链长是奇数就取掉最中间的那个,否则取掉最中间的两个).那么一个游戏就被分成了两个相同的独立游戏.那么假如对方在某一游戏中进行了一种操作,我们只要在另一游戏中重复该操作即可.那么可以保证我们面临的两个游戏状态一定相同,而对方面临的一定不同.

POJ 2484 A Funny Game(智商博弈)

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