link
博弈论,sg函数
没看懂题解,,暴力打了个表,一开始还把操作2给漏了。
看题解的意思是每次操作都会让
x
x
x 减少,做了几道题目感觉就是如果有多种操作,那就找这几种操作的共同点,来写转移方程。
int sg[1050]; int mex(vectorv) // v可以是vector、set等容器 { unordered_set S; for (auto e : v) S.insert(e); for (int i = 0;; ++i) if (S.find(i) == S.end()) return i; } int cal(int x) { if(sg[x] != -1) return sg[x]; int t = x; vector v; if(t & 1) { v.pb(cal(t - 1)); } for(int i = 0; i < 10; i++) { if(!(t >> i)) break; if((t >> i) & 1) { int p = x ^ (1<= 0; j--) { int q = p ^ (1< > n; string s; cin >> s; int a = 0; for(int i = 0; i < n; i++) { if(s[i] == 'w') a = a + (1<> T; while(T--) solve(); return 0; }



