hdu 2149
摘要:sg值但是这一题要注意一点,就是N值大于等于M值时考虑。View Code 1 #include <cstdio> 2 #include <cstring> 3 4 int sg[1101]; 5 int mex[1101]; 6 int m,n; 7 8 void get_sg() 9 {10 int i,j;11 sg[0] = 0;12 for(i = 1;i <1101;i ++)13 {14 memset(mex,0,sizeof(mex));15 for(j = 1;j <=n ;j ++)16 ...
阅读全文
posted @
2012-03-09 21:25
Shirlies
阅读(235)
推荐(0) 编辑
hdu 1848
摘要:求sg值就行了View Code 1 #include <cstdio> 2 #include <cstring> 3 4 int fib[1000]; 5 int sg[1100]; 6 int mex[1000]; 7 int num_fib; 8 9 void cal_fib()10 {11 fib[0] = 1;12 fib[1] = 1;13 int i;14 for(i = 2;i < 1000;i ++)15 {16 fib[i] = fib[i-1] + fib[i-2];17 if(fib[i] >...
阅读全文
posted @
2012-03-09 20:55
Shirlies
阅读(375)
推荐(0) 编辑
hdu 1850
摘要:这是一道关于博弈的题目,这一题挺不错的,如果知道了nim游戏异或的道理,这一题是比较好写的。Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示异 或(xor)运算。•对于某个局面(a1,a2,...,an),若a1^a2^...^an==k(k>0)•一定存在某个合法的移动,将ai改变成ai'后满足 a1^a2^...^ai'^...^an=0•一定存在某个ai,它的二进制表示在k的最高位上是1 (ai^k<ai 成立)•将ai改变成ai'=ai^k a1^a2^...^ai'^..
阅读全文
posted @
2012-03-09 09:36
Shirlies
阅读(951)
推荐(0) 编辑
hdu 1847
摘要:做完之后,想看看别人是怎么做的,翻了一下别人的代码,晕,那个简洁啊,直接模3……我还是贴我自己的代码吧,我是想求SG值来着的……View Code 1 #include <cstdio> 2 3 int index[11]={1,2,4,8,16,32,64,128,256,512,1024}; 4 int n; 5 int vic[1002]={0}; 6 7 int main() 8 { 9 int i;10 11 for(i=1;i<1002;i ++)12 {13 int flag = 0;14 for(int j=0;j<...
阅读全文
posted @
2012-03-07 13:15
Shirlies
阅读(526)
推荐(0) 编辑