URAL 1465 Pawn Game
2013-07-26 13:36
183 查看
取石子博弈,终于搞懂一点sg函数了。
关键在于理解mex的功用,取最小非负整数。
关键在于理解mex的功用,取最小非负整数。
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cctype> #include <vector> #include <stack> #include <queue> #include <map> #include <algorithm> #include <iostream> #include <string> #include <set> #define X first #define Y second #define sqr(x) (x)*(x) using namespace std; const double PI = acos(-1.0); map<int,int>::iterator it; typedef long long LL ; int dp[120]; int sg(int n) { int &ret =dp ; if(~ret)return ret; ret=0; if(n==0)return ret=0; if(n==1||n==2)return ret=1; int i=0; set<int> S; S.insert(sg(n-2)); S.insert(sg(n-3)); for(int i=1;i<=n-3;++i) { S.insert(sg(i)^sg(n-i-3)); } for(int i=0;;++i) { if(S.find(i)==S.end())return ret=i; } } int main() { memset(dp,-1,sizeof(dp)); int n; while(~scanf("%d",&n)) { int res; if(n<68)res = sg(n); else res = sg((n-68)%34+68); printf("%s\n",res>0?"White":"Black"); } return 0; }
相关文章推荐
- PKU1733 URAL1003 Parity game
- 乌拉尔大学(URAL):http://acm.timus.ru/
- Ural 1136. Parliament
- Ural 1353
- ural 1031 Railway Tickets
- ural 1064 Binary Search
- ural 1033. Labyrinth
- ural 1280. Topological Sorting
- Ural 1014 Product of Digits 解题报告
- URAL 1119 Metro
- URAL 1572. Yekaterinozavodsk Great Well(继续贴水题~)
- URAL - 1012 DP+高精度
- Ural_1260. Nudnik Photographer(DP)
- Ural_1586. Threeprime Numbers (DP)
- URAL1009 K-based Numbers,简单DP
- [解题报告]ural 1041 Nikifor
- ural 1009 K-based Numbers
- URAL 1846 GCD 2010
- ural 1416 Confidential 次小生成树
- URAL_1091_Tmutarakan Exams