摘要: 思路:由于数据很大,先通过打表找规律可以知道,当n为偶数的时候其SG值为n/2;当n为奇数的时候一直除2,直到为偶数m,则SG值为m/2;代码如下: 1 #include 2 int cal(int m) 3 { 4 while(m&1) m>>=1; 5 return m>>1; 6 } 7 int main() 8 { 9 int t,n,ca=0,a;10 scanf("%d",&t);11 while(t--){12 scanf("%d",&n);13 int ans=0;14 for(int i= 阅读全文
posted @ 2013-10-12 12:32 _随心所欲_ 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 思路:SG函数枚举先手的每一个位置是否有必胜。1)如果出现了XXX则必胜;2)如果出现了XX或X.X则必败;3)否则计算后手的sg值和。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #define M 201 6 using namespace std; 7 char str[M]; 8 int sg[M],len; 9 vectorp;10 int get_sg(int m) //计算SG值11 {12 if(m<0) return 0;13 if(sg[m]!=-1) return sg[m];14 bool... 阅读全文
posted @ 2013-10-12 10:22 _随心所欲_ 阅读(372) 评论(0) 推荐(0) 编辑