码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1404 找sg ***

时间:2015-09-03 17:47:51      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

HDU 1404  Digital Deletions

一串由0~9组成的数字,可以进行两个操作:1、把其中一个数变为比它小的数;2、把其中一个数字0及其右边的所以数字删除。

两人轮流进行操作,最后把所以数字删除的人获胜,问前者胜还是后者胜。

字符串长度为1-6,前者胜输出Yes,否则输出No.

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<queue>
 7 #include<map>
 8 using namespace std;
 9 #define MOD 1000000007
10 const int INF=0x3f3f3f3f;
11 const double eps=1e-5;
12 typedef long long ll;
13 #define cl(a) memset(a,0,sizeof(a))
14 #define ts printf("*****\n");
15 const int MAXN=1000000;
16 int m,tt;
17 bool sg[MAXN];
18 void fun(int n)
19 {
20     int i,j,k;
21     char ss[10];
22     sprintf(ss,"%d",n);
23     int len=strlen(ss);
24     for(i=0;i<len;i++)  //在每位上添加数字
25     {
26         int temp=n;
27         char tss[10];
28         strcpy(tss,ss);
29         while(tss[i]<9)
30         {
31             tss[i]+=1;
32             sscanf(tss,"%d",&temp);
33             sg[temp]=1;
34         }
35     }
36     if(len!=6)
37     {
38         int temp=n;
39         int base=1;
40         for(i=len;i<6;i++)
41         {
42             temp*=10;
43             for(j=0;j<base;j++)
44             {
45                 sg[temp+j]=1;
46             }
47             base*=10;
48         }
49     }
50 }
51 void init()
52 {
53     sg[0]=1;
54     for(int i=1;i<MAXN;i++)
55     {
56         if(!sg[i])
57         {
58             fun(i);
59         }
60     }
61 }
62 int main()
63 {
64     int i,j,k,ca=1;
65     #ifndef ONLINE_JUDGE
66     freopen("1.in","r",stdin);
67     #endif
68     cl(sg);
69     init();
70     char s[10];
71     while(scanf("%s",s)!=EOF)
72     {
73         int n=0;
74         if(s[0]==0)
75         {
76             printf("Yes\n");
77             continue;
78         }
79         int len=strlen(s);
80         for(i=0;i<len;i++)
81         {
82             n*=10;
83             n+=s[i]-0;
84         }
85         if(sg[n])   printf("Yes\n");
86         else printf("No\n");
87     }
88 }

 

hdu 1404 找sg ***

标签:

原文地址:http://www.cnblogs.com/cnblogs321114287/p/4780341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!