YCJSOI1471 石头剪刀布(博弈dp)

题意

略.

分析

递推.

CODE

#include<cstdio>
#define N 1000001
bool dp[N];
int main(){
    dp[0]=0;
    for(int i=1;i<N;i++){
        int x=i,a=9,b=1;
        while(x){
            int t=x%10;
            x/=10;
            if(t==0)continue;
            if(a>t)a=t;
            if(b<t)b=t;
        }
        dp[i]=!(dp[i-a]&dp[i-b]);
    }
    int T,n;
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        printf("%s\n",dp[n]==1?"YES":"NO");
    }
    return 0;
}
发布了34 篇原创文章 · 获赞 44 · 访问量 5073

猜你喜欢

转载自blog.csdn.net/zzyyyl/article/details/78444556