【博弈论】【SG函数】bzoj1457 棋盘游戏
2015-03-14 11:39
281 查看
一开始就必胜的特判一下。
#include<cstdio> #include<cstring> #include<set> #include<algorithm> using namespace std; int T,n,X[1001],Y[1001],SG[101][101]; int sg(int x,int y) { if(SG[x][y]!=-1) return SG[x][y]; set<int>S; for(int i=1;i<x;++i) if(x-i!=y) S.insert(sg(x-i,y)); for(int i=1;i<y;++i) if(x!=y-i) S.insert(sg(x,y-i)); int lim=min(x,y); for(int i=1;i<lim;++i) S.insert(sg(x-i,y-i)); for(int i=0;;++i) if(S.find(i)==S.end()) return SG[x][y]=i; } int main() { memset(SG,-1,sizeof(SG)); scanf("%d",&T); for(;T;--T) { scanf("%d",&n); int ans=0; for(int i=1;i<=n;++i) { scanf("%d%d",&X[i],&Y[i]); if(X[i]==Y[i]||X[i]==0||Y[i]==0) { puts("^o^"); goto OUT; } } for(int i=1;i<=n;++i) ans^=sg(X[i],Y[i]); puts(ans?"^o^":"T_T"); OUT:; } return 0; }
相关文章推荐
- BZOJ 1457: 棋盘游戏 SG函数
- BZOJ 1457 棋盘游戏 SG函数
- bzoj 1457: 棋盘游戏 sg函数
- BZOJ 1457 棋盘游戏 SG函数
- 【博弈论】【SG函数】【枚举】bzoj1874 [BeiJing2009 WinterCamp]取石子游戏
- [BZOJ 1188] [HNOI2007] 分裂游戏 【博弈论|SG函数】
- BZOJ1457 棋盘游戏
- bzoj1457 棋盘游戏
- 【博弈论】【SG函数】【枚举】bzoj1188 [HNOI2007]分裂游戏
- 【博弈】【bzoj 1457】: 棋盘游戏
- 【博弈论】【SG函数】bzoj3404 [Usaco2009 Open]Cow Digit Game又见数字游戏
- [BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戏 【博弈论 | SG函数】
- BZOJ1188 [HNOI2007]分裂游戏(SG函数)
- [BZOJ1188][HNOI2007]分裂游戏(SG函数)
- 【BZOJ 3106】 3106: [cqoi2013]棋盘游戏 (对抗搜索)
- bzoj 1115: [POI2009]石子游戏Kam -- 博弈论
- BZOJ 3106: [cqoi2013]棋盘游戏
- [SG函数] BZOJ1188: [HNOI2007]分裂游戏
- [BZOJ1188][HNOI2007]分裂游戏(博弈SG函数)
- [SG函数 + 分块] BZOJ4035: [HAOI2015]数组游戏