题目大意:
二个人玩取石子游戏,一共有三堆石子,分别为m、n、p个。两个人轮流取石子,每次可以任选一堆石子,
然后取斐波那契数列中的f(n)个。每次都使用最优策略,先取完的人获胜。问:先手的人会赢还厚后手的人会
赢?
思路:
这是一道博弈题。
Fibo[] = {1,2,3,5,8,13,21,…}。根据题意每次只能取fibo[i]个。则:
1.如果只有1堆m个,而m是某个fibo[i],则m是必胜点。m = 1,2,3,5,8,13,21,…是必胜点。
可以看出来0,4就是必败点。如果从m中取走k个(k...
分类:
其他好文 时间:
2015-04-08 11:04:06
阅读次数:
204
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)
Total Submission(s) : 1 Accepted Submission(s) : 1
Problem Description
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次...
分类:
其他好文 时间:
2015-04-07 12:08:16
阅读次数:
220
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。如果你胜,你第1次怎样取子?...
分类:
其他好文 时间:
2015-03-30 18:54:50
阅读次数:
209
取石子游戏
Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u
Submit Status Practice POJ
1067
Appoint description:
System Crawler (2015-03-14)
Description
有两...
分类:
其他好文 时间:
2015-03-15 09:31:17
阅读次数:
285
枚举第一步可能达到的状态,判断是否是必败态即可。#include#include#includeusing namespace std;int SG[1001],a[1001],b[1001],n,m,all;int sg(int x){ if(SG[x]!=-1) return SG[x]; se...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2516题意分析:乍一看是巴什博弈,后来发现博弈只是个噱头,关键还是找规律。/*取石子游戏Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32...
分类:
其他好文 时间:
2015-03-06 09:54:16
阅读次数:
175
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2176题意分析:给出M堆石子,两人交替取子,给出先手能否胜利。 不能输出No, 能则输出Yes并给出第一次取子的个数。 典型的Nim博弈,先判断T态,若是非T态再求第一次取子的个数/*取(m堆)石子游戏T...
分类:
其他好文 时间:
2015-03-03 09:48:00
阅读次数:
102
博弈论 这题跟 BZOJ 1874 取石子游戏 差不多 先暴力求出10000以内的SG函数(利用定义来求即可) 然后每次询问直接将SG值异或起来即可…… 1 Source Code 2 Problem: 2960 User: sdfzyhy 3 Memory: 444K ...
分类:
其他好文 时间:
2015-02-27 22:50:40
阅读次数:
238
Problem Description
1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".
Input
输入有多组.每组第1行是2<=n<2^31. n=0退出.
Output
先取者负输出"Second win". 先取者胜输出"First win".
参看Sample Output....
分类:
其他好文 时间:
2015-02-26 13:29:04
阅读次数:
245
Problem Description
有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。如果你胜,你第1次怎样取子?
Input
输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,00...
分类:
其他好文 时间:
2015-02-26 10:06:27
阅读次数:
270