【Luogu】P2953牛的数字游戏(博弈论)
2024-09-30 04:19:15
自己乱搞……然后一遍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 ;
}
最新文章
- 日志分析_使用shell完整日志分析案例
- phpwind之关闭账号通
- js将long日期格式转换为标准日期格式
- 关于jquery.bind
- InnoDB与MyISAM的区别
- IE layout详解
- tky项目第①个半月总结
- UWP Popup 弹出
- TortiseGit 添加SSH-Key
- 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致";
- 经典Python进阶文档 真的很棒
- MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx:
- Openlayer3之空间参考扩展
- java中获取字母和数字的组合
- linux shell 语法学习
- [Python] 函数基本
- css sprite实例
- 20172305 2018-2019-1 《Java软件结构与数据结构》第五周学习总结
- Linux之静态库与动态库20160706
- Dijkstra算法:POJ No 3268 Silver Cow Party
热门文章
- LR中订单流程脚本
- [文章泛读] The varying faces of a program transformation systems (ACM Inroads, 2012)
- POJ 1947 Rebuilding Roads (树形DP)
- URAL 2047 	Maths (数学)
- 【转】SpringBoot 2.0.0新版和SpringBoot1.5.2版本中Tomcat配置的差别
- jsc 解码窥探
- Velocity模板语法说明
- Mybatis generator自动生成代码包括实体,dao,xml文件
- BestCoder Round#15 1002-Instruction
- SSH整合JAR包详解