题目链接

  自己乱搞……然后一遍AC啦!

  思路从基本的必胜态和必败态开始分析。我们把减去最大数得到的数叫作Max,减去最小数得到的数叫作Min。

  那么开始分析。

  一、0是必败态。

    这个没法解释。题目就这么定义的。

  二、若一个数的Max和Min都是必胜态,那该数为必败态。

    如果你拿到一个数,结果你发现怎么减都会让对手必胜,那恭喜你,你拿到了一个必败的数。很好理解。

  三、若一个数的Max和Min有一个是必败态,那该数为必胜态。

    如果你拿到一个数,发现有一种减法让对手从此无法翻盘,那恭喜你,你拿到了一个可以必胜的数。 

  根据这三条原则就很好设计啦

  设f[x]判断x是必胜态还是必败态。从小到大枚举,按上面三条原则乱搞搞就可以O1查询啦。

  

#include<cstdio>
#include<cstdlib>
#include<cctype>
#include<algorithm> using namespace std; inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} struct Point{
int maxn,minn;
Point(){ maxn=-;minn=; }
}; inline Point getlen(int val){
Point ans;
while(val){
int x=val%; val/=;
if(!x) continue;
ans.maxn=max(ans.maxn,x);
ans.minn=min(ans.minn,x);
}
return ans;
} int f[];
bool vis[]; void dfs(int val){
if(vis[val]) return;
vis[val]=;
if(val==) return;
Point now=getlen(val);
if(!vis[val-now.maxn]) dfs(val-now.maxn);
if(!vis[val-now.minn]) dfs(val-now.minn);
if((f[val-now.maxn]==)||(f[val-now.minn]==)) f[val]=;
} int main(){
int T=read();
for(int i=;i<=;++i)
if(!vis[i]) dfs(i);
while(T--){
int n=read();
if(f[n]) printf("YES\n");
else printf("NO\n");
}
return ;
}

最新文章

  1. 日志分析_使用shell完整日志分析案例
  2. phpwind之关闭账号通
  3. js将long日期格式转换为标准日期格式
  4. 关于jquery.bind
  5. InnoDB与MyISAM的区别
  6. IE layout详解
  7. tky项目第①个半月总结
  8. UWP Popup 弹出
  9. TortiseGit 添加SSH-Key
  10. 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致&quot;
  11. 经典Python进阶文档 真的很棒
  12. MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx:
  13. Openlayer3之空间参考扩展
  14. java中获取字母和数字的组合
  15. linux shell 语法学习
  16. [Python] 函数基本
  17. css sprite实例
  18. 20172305 2018-2019-1 《Java软件结构与数据结构》第五周学习总结
  19. Linux之静态库与动态库20160706
  20. Dijkstra算法:POJ No 3268 Silver Cow Party

热门文章

  1. LR中订单流程脚本
  2. [文章泛读] The varying faces of a program transformation systems (ACM Inroads, 2012)
  3. POJ 1947 Rebuilding Roads (树形DP)
  4. URAL 2047 Maths (数学)
  5. 【转】SpringBoot 2.0.0新版和SpringBoot1.5.2版本中Tomcat配置的差别
  6. jsc 解码窥探
  7. Velocity模板语法说明
  8. Mybatis generator自动生成代码包括实体,dao,xml文件
  9. BestCoder Round#15 1002-Instruction
  10. SSH整合JAR包详解