摘要:        
基础矩阵乘法……#include #include #define rep(i,n) for(int i=0;i>1,mod); tmp=mul(tmp,tmp,l,m,n,mod); if(x&1)tmp=mul(tmp,a,l,m,n,mod); return tmp;}int...    阅读全文
posted @ 2014-04-20 15:16
forever97
阅读(136)
评论(0)
推荐(0)
        
            
        
        
摘要:        
典型的尼姆博弈,在n对石子中,告诉你每堆的数目和每次从该堆最多可以取的数目,求最终谁将其取完。题解:SG(i)=mi%(li+1),求异或值即可。#include int main(){ int T,i,n,SG,m,l; scanf("%d",&T); while(T--){ ...    阅读全文
posted @ 2014-04-20 14:58
forever97
阅读(159)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:画图可得当横纵坐标均为奇数时为必败态…… #include int main(){ int a,b; while(scanf("%d%d",&a,&b),a!=0&&b!=0){ a%=2; b%=2; if(a&&b)puts("What a...    阅读全文
posted @ 2014-04-20 14:43
forever97
阅读(114)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:最简单的巴什博弈,取石子游戏……#include int main(){ int T,n,m; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); if(n%(m+1)==0)puts("Rabbit"...    阅读全文
posted @ 2014-04-20 14:27
forever97
阅读(126)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:尼姆博弈,SG(i)=i,要使当前堆可取,则数量必须大于其余所有堆的SG异或值,这样才可以减到其SG值使总异或值为0,又不可不取,所以不能取等号。#include using namespace std; int SG[105]; int main(){ in...    阅读全文
posted @ 2014-04-20 14:22
forever97
阅读(151)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:因为棋子可重叠,所以就等于取石子问题,即尼姆博弈,SG[i]=i,直接将输入数据异或即可。#include int main(){ int SG,n,a; while(scanf("%d",&n),n){ SG=0; while(n--){ ...    阅读全文
posted @ 2014-04-20 14:04
forever97
阅读(161)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:尼姆博弈,对于1至1000计算SG函数,每次取最小的前继值,SG值异或为0则为P-position。#include #include using namespace std; int fbi[30]; int SG[1001]; int m,n,p; int main(){ ...    阅读全文
posted @ 2014-04-20 13:51
forever97
阅读(196)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:巴什博弈,2^k+1=3N或2^k2=3N,所以3N为P-position,3N+r为N-position。#include int main(){ int n; while(~scanf("%d",&n)){if(n%3==0)puts("Cici");else puts("Ki...    阅读全文
posted @ 2014-04-20 13:23
forever97
阅读(133)
评论(0)
推荐(0)
        
            
        
        
摘要:        
题解:巴什博弈,考虑P点为0,则N点在1至m之间,则k(m+1)+r为N点,所以只要满足n%(m+1)==0则先手必败,反之则先手必胜……#include int main(){ int T,n,m; scanf("%d",&T); while(T--){ scanf...    阅读全文
posted @ 2014-04-20 13:12
forever97
阅读(158)
评论(0)
推荐(0)
        

 浙公网安备 33010602011771号
浙公网安备 33010602011771号