Time Limit: 3 Sec Memory Limit: 128 MB
Submit: 72 Solved: 48
贝茜和约翰在玩一个数字游戏.贝茜需要你帮助她.
游戏一共进行了G(1≤G≤100)场.第i场游戏开始于一个正整数Ni(l≤Ni≤1,000,000).游
戏规则是这样的:双方轮流操作,将当前的数字减去一个数,这个数可以是当前数字的最大数码,也可以是最小的非0数码.比如当前的数是3014,操作者可以减去1变成3013,也可以减去4变成3010.若干次操作之后,这个数字会变成0.这时候不能再操作的一方为输家. 贝茜总是先开始操作.如果贝茜和约翰都足够聪明,执行最好的策略.请你计算最后的赢家.
比如,一场游戏开始于13.贝茜将13减去3变成10.约翰只能将10减去1变成9.贝茜再将9减去9变成0.最后贝茜赢.
第1行输入一个整数G,之后G行一行输入一个Ni.
对于每一场游戏,若贝茜能赢,则输出一行“YES”,否则输幽一行“NO”
2 9 10
YES NO
For the first game, Bessie simply takes the number 9 and wins.
For the second game, Bessie must take 1 (since she cannot take 0), and then
FJ can win by taking 9.
题解:很萌的博弈论问题。。。但是我还是在读题上逗比了N次——第一次我以为每次可以减去 1-最大的位数 ;第二次我以为可以减去 最小的位数-最大的位数 ;直到第三次才发现只可以减去最大位数和最小位数。。。别的没了,博弈论经典算法AC之
PS:不过虽然AC了,但是2800ms+,时限为3s,这个速度比较滚粗,于是本人打算明天再来一发优化题解么么哒!!!
1 /**************************************************************
2 Problem: 3404
3 User: HansBug
4 Language: Pascal
5 Result: Accepted
6 Time:2804 ms
7 Memory:9992 kb
8 ****************************************************************/
9
10 var
11 i,j,k,l,m,n,t:longint;
12 a:array[0..1000005,1..2] of boolean;
13 b:array[0..1000005,1..2] of longint;
14 function max(x,y:longint):longint;
15 begin
16 if x>y then max:=x else max:=y;
17 end;
18 function min(x,y:longint):longint;
19 begin
20 if x<y then min:=x else min:=y;
21 end;
22 begin
23 a[0,1]:=false;a[0,2]:=true;
24 for i:=1 to 1000000 do
25 begin
26 j:=i;k:=1;t:=9;
27 while j>0 do
28 begin
29 k:=max(k,j mod 10);
30 if (j mod 10)>0 then t:=min(t,j mod 10);
31 j:=j div 10;
32 end;
33 a[i,1]:=false;
34 if a[i-t,2] then a[i,1]:=true;
35 if a[i-k,2] then a[i,1]:=true;
36 a[i,2]:=true;
37 if not(a[i-t,1]) then a[i,2]:=false;
38 if not(a[i-k,1]) then a[i,2]:=false;
39 end;
40 readln(n);
41 for i:=1 to n do
42 begin
43 readln(m);
44 if a[m,1] then writeln('YES') else writeln('NO');
45 end;
46 readln;
47 end.
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有