因为第i个瓶子里的所有豆子都是等价的,设sg(i)表示第i个瓶子的sg值,可以转移到sg(j)^sg(k)(i#include#includeusing namespace std;int T,n,a[21],SG[21];int sg(int x){ if(SG[x]!=-1) return SG...
分类:
其他好文 时间:
2015-03-14 10:56:03
阅读次数:
197
枚举第一步可能达到的状态,判断是否是必败态即可。#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...
由于异或运算满足结合律,我们把当前状态的SG函数定义为 它所能切割成的所有纸片对的两两异或和之外的最小非负整数。#include#include#includeusing namespace std;int n,m,SG[201][201];int sg(int x,int y){ if(SG[x]...
分类:
其他好文 时间:
2015-03-14 09:36:12
阅读次数:
152
某个状态的SG函数被定义为 除该状态能一步转移到的状态的SG值以外的最小非负整数。有如下性质:从SG值为x的状态出发,可以转移到SG值为0,1,...,x-1的状态。不论SG值增加与否,我们都可以将当前所有子游戏的SG值异或起来从而判断胜负状态。常采用记忆化搜索来计算SG函数。#include#in...
分类:
其他好文 时间:
2015-03-13 22:02:30
阅读次数:
150
传送门:S-Nim题意:给n个数的集合s, 再给m 组数据,每组表示 k 堆石子,每次可以取的个数只能是集合s中的数量。问先手胜还是输?分析:sg函数的经典运用,先预处理出所有数量为0~10000的石子的sg值,然后判断k堆石子的sg值异或和是否为0来判断先手的输赢。#include #includ...
分类:
其他好文 时间:
2015-03-10 20:56:21
阅读次数:
128
如果已经有三个相邻的X,则先手已经输了。如果有两个相邻的X或者两个X相隔一个.,那么先手一定胜。除去上面两种情况,每个X周围两个格子不能再放X了,因为放完之后,队手下一轮再放一个就输了。最后当“禁区”布满整行,不能再放X了,那个人就输了。每放一个X,禁区会把它所在的线段“分割”开来,这若干个片段就可...
分类:
其他好文 时间:
2015-03-10 15:24:37
阅读次数:
142
题意:有n堆石子,两个人轮流取,每次只能取一堆的至少一个至多一半石子,直到不能取为止。判断先手是否必胜。分析:本题的关键就是求SG函数,可是直接分析又不太好分析,于是乎找规律。经过一番“巧妙”的分析,有这样一个规律:如果n是偶数,SG(n) = n / 2;如果n是奇数,SG(n) = SG(n /...
分类:
其他好文 时间:
2015-03-09 19:01:56
阅读次数:
131
C - Playing With Stones Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %lluSubmit Status Practice UVALive 5059DescriptionYou and your frien...
分类:
其他好文 时间:
2015-03-04 14:20:13
阅读次数:
169
Problem 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 positions are constituted as a topological graph, i.e. there are directed edges connecting so...
分类:
其他好文 时间:
2015-03-01 13:14:04
阅读次数:
294
Problem Description
任何一个大学生对菲波那契数列(Fibonacci numbers)应该都不会陌生,它是这样定义的:
F(1)=1;
F(2)=2;
F(n)=F(n-1)+F(n-2)(n>=3);
所以,1,2,3,5,8,13……就是菲波那契数列。
在HDOJ上有不少相关的题目,比如1005 Fibonacci again就是曾经的浙江省赛题。
今天,又一个关于Fibonacci的题目出现了,它是一个小游戏,定义如下:
1、 这是一个二人游戏;
2、 一共有3堆石子,数量分别...
分类:
其他好文 时间:
2015-02-28 23:02:41
阅读次数:
204