UVA 1559 - Nim
题目链接
题意:一开始有s个石子,2n个人轮流取石子,每个人有个最大能取数目,2n个人奇数一队,偶数一队,取到最后一个石子的队输,问谁赢
思路:记忆化搜索,每个人取的时候对应的后继状态如果有一个必败态,则该状态为必胜态,如果都是必胜态,则该状态为必败态
代码:
#include
#include
int n, s, m[25], d...
分类:
其他好文 时间:
2014-07-18 23:06:52
阅读次数:
431
UVA 10165 - Stone Game
题目链接
题意:给定n堆石子,每次能在一堆取1到多个,取到最后一个赢,问谁赢
思路:就裸的的Nim游戏,利用定理求解
代码:
#include
#include
int n, num;
int main() {
while (~scanf("%d", &n) && n) {
int sum = 0;
...
分类:
其他好文 时间:
2014-07-18 22:17:20
阅读次数:
342
题解:简单的NIM游戏,直接计算SG函数,至于找先手策略则按字典序异或掉,去除石子后再异或判断,若可行则直接输出。#include const int N=1005;int SG[N],b[N],hash[N],a[N],sum,tmp,i,j,n,m; void FSG(int s){ ...
分类:
其他好文 时间:
2014-07-18 21:09:31
阅读次数:
206
题解:注意题目中规定取到最后一粒石子的人算输,所以是Anti-Nim游戏,胜负判断为:先手必胜: 1.所有堆的石子数都为1且游戏的SG值为0; 2.有些堆的石子数大于1且游戏的SG值不为0。#include int main(){ int t,n,s,x,tmp; scanf("%d...
分类:
其他好文 时间:
2014-07-17 11:09:17
阅读次数:
303
UVA 11859 - Division Game
题目链接
题意:给定一个矩阵,每次能选一行中几个数字,把他们变成他们的因子,最后不能变的人输,问是否能先手必胜
思路:转变成因子等价于删去一些素数,这样问题转化为了Nim游戏
代码:
#include
#include
const int N = 10005;
int t, n, m, num, cnt[N],...
分类:
其他好文 时间:
2014-07-16 14:25:19
阅读次数:
212
,请谅解~
Nim or not Nim?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 960 Accepted Submission(s): 466
Problem Description
...
分类:
其他好文 时间:
2014-07-06 11:15:10
阅读次数:
196
HDU 3032 Nim or not Nim? (sg函数求解)
题目大意:
Alice和Bob轮流取N堆石子,每堆S[i]个,Alice先,每一次可以从任意一堆中拿走任意个石子,也可以将一堆石子分为两个小堆。先拿完者获胜。(1 ≤ N ≤ 10^6, 1 ≤ S[i] ≤ 2^31 - 1)
解题思路:
对于一个给定的有向无环图,定义关于图的每个顶点的Sprague-Grundy函数g如下:g(x)=mex{ g(y) | y是x的后继 },这里的g(x)即sg[x]
例如:取石子问题,有1堆n...
分类:
其他好文 时间:
2014-07-06 00:44:38
阅读次数:
339
题目链接:点击打开链接
题意:
给定n
下面n行,每行2个数u v 表示有v堆石子:u,u+1,u+2···u+v-1
问先手必胜还是后手必胜
思路:
首先根据Nim的博弈结论
把所有数都异或一下,看结果是0还是非0
而这里因为数字太多所以想优化
那么其实对于一个序列 u, u+1, u+2 ····
显然 {4,5} {,6,7}, {8,9} 这样2个一组的异或结果就是1
...
分类:
其他好文 时间:
2014-06-26 10:25:50
阅读次数:
176
利用后继节点的SG值求出当前的SG值。在当前任意一个BLANK插入一个x后,分成两段,于是,看成两段的NIM,异或和,按SG的定义求出当前的SG值即可。
1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 ...
分类:
其他好文 时间:
2014-06-09 13:37:24
阅读次数:
235
S-NimTime Limit: 5000/1000 MS
(Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s):
4091Accepted Submission(s): 1760Problem Descr...
分类:
其他好文 时间:
2014-05-30 01:31:59
阅读次数:
317