您的位置:首页 > 运维架构

[bzoj3404] [Usaco2009 Open]Cow Digit Game又见数字游戏

2016-06-18 22:32 495 查看
  直接把所有数的sg值算出来就行了。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1002333;
int sg[maxn];
int st[8];
int i,j,k,n,m;

int ra;char rx;
inline int read(){
rx=getchar(),ra=0;
while(rx<'0'||rx>'9')rx=getchar();
while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
}
int main(){
sg[0]=0;int mx,mn;
for(i=1;i<=1000000;i++){
mx=0,mn=10;
for(k=i;k;k/=10){
j=k%10;
if(j>0&&j<mn)mn=j;
if(j>mx)mx=j;
}
if(mx==mn)sg[i]=!sg[i-mx];
else if(sg[i-mx]&&sg[i-mn])sg[i]=0;
else if(sg[i-mx]!=1&&sg[i-mn]!=1)sg[i]=1;
else sg[i]=2;
}
for(int T=read();T;T--)
puts(sg[read()]?"YES":"NO");
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: