
bzoj
何乐乐和何了了
冲冲冲!
展开
-
bzoj1188 [HNOI2007]分裂游戏
链接:点击打开链接 题解:把一颗豆子看成一种局面,sg[i]中的i为豆子所处的位置 sg[i]=mex{sg[j]^sg[k]|i 当位置i的豆子个数为偶数时,sg[i]相互抵消;所以当前局面的SG是p[i]为奇数位置的sg[i]的异或和 对于第一问,即考虑先手取一次后,后手取的局面的SG值,若为0,则先手必胜。后手的SG值为当前的SG^sg[i]^sg[j]^sg[k](其中i,j,k表原创 2016-09-05 08:42:26 · 340 阅读 · 0 评论 -
bzoj1228 [SDOI2009]E&D
题解:将一组看成一个局面,打表算出SG,找规律 #include #include #include #include #include #include using namespace std; typedef long long LL; const int N=1e4+10; int n; int dfs(int x,int y)//这个规律很神奇 { long l原创 2016-09-06 13:22:46 · 792 阅读 · 0 评论 -
bzoj3576 [Hnoi2014]江南乐
题解:把一堆石子看成一种局面,如果递推求的话会是O(n^2),超时。 有一种性质:n是石子数,i是分成的堆数,如果n/i==n/(i+2),那么他们的异或和相同。 所有对于n/i相同的堆数,他们的异或和只有两种情况(i为奇数和i为偶数两种)。而对于n/i的种类只有sqrt(n)种(n的约数个数)。据此递推 #include #include #include #include #in原创 2016-09-06 16:36:38 · 445 阅读 · 0 评论 -
bzoj1022 [SHOI2008]小约翰的游戏John
题解:首先考虑只有1的情况,奇数个1先手必败,偶数个1先手必胜; 若有大于1的堆,所有堆的xor之和为0,则先手必败;否则先手必胜。xor之和为0,那么后手的策略为 先手取多少,后手取多少;最后就会剩下两种状态(后手先取): 1. 很多堆1和一堆大于1的堆 2. 两个大于1的堆 对于第一种情况,若1的个数为奇数,那么后手取完大于1的堆,剩下奇数个1的堆,后手必胜;若1的个数为偶数,原创 2016-09-07 11:46:10 · 521 阅读 · 0 评论