题目大意:
二个人玩取石子游戏,一共有三堆石子,分别为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...
题意:
有好几堆石子,现在两人轮流取石子,一个人可以选择其中一堆,取至少一个石子,然后可以选择将这堆分成两堆,取走最后一个石子是胜利者;
问先手胜还是后手胜;
思路:
Nim博弈模板;这题中分堆这个操作实际上并没有作用;
#include
#include
#define ll long long
int n;
int main() {
while(scanf("%d...
分类:
其他好文 时间:
2015-03-11 19:49:35
阅读次数:
181
Orz PoPoQQQ我等蒟蒻只能想到石子数 ≥ 2时的情况。。。1的时候就爆搜?大概是这个意思最后再记忆化一下 1 /************************************************************** 2 Problem: 3895 3 U...
分类:
其他好文 时间:
2015-03-06 18:58:55
阅读次数:
154
题目链接: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
题目大意:给定n堆石子,两人轮流操作,每个人可以合并两堆石子或拿走一个石子,不能操作者输,问是否先手必胜
直接想很难搞,我们不妨来考虑一个特殊情况
假设每堆石子的数量都>1
那么我们定义操作数b为当前石子总数+当前堆数-1
若b为奇数,则先手必胜,否则后手必胜
证明:
若当前只有一堆,则正确性显然
否则:
若b为奇数,那么先手只需进行一次合成操作,此时操作数会-1,且仍不存在大小为...
分类:
其他好文 时间:
2015-02-28 20:19:12
阅读次数:
226