【luoguP2252】 取石子游戏
2024-10-20 07:48:45
定义\(f[i][j]\)表示\(a=i,b=j\)时是必胜态还是必败态,博弈DP可以解决\(a,b \leq 100\) 的情况
然后就可以找规律了,发现\(f[i][j]=0\)的情况很少,所以打印出\(f[i][j]=0\)时的\(i\)和\(j\)的表
\((i,j)\)和\((j,i)\)是等价的,所以不妨只考虑\(i<=j\)的情况
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int MAXN=10010;
int a,b,f[MAXN][MAXN];
bool dfs(int x,int y){
if(f[x][y]!=-1) return f[x][y];
if(x==0&&y==0) return f[x][y]=0;
f[x][y]=0;
for(int i=0;i<x&&!f[x][y];++i)
if(!dfs(i,y)) f[x][y]=1;
for(int i=0;i<y&&!f[x][y];++i)
if(!dfs(x,i)) f[x][y]=1;
int k=min(x,y);
for(int i=1;i<=k&&!f[x][y];++i)
if(!dfs(x-i,y-i)) f[x][y]=1;
return f[x][y];
}
int main()
{
memset(f,-1,sizeof(f));
// scanf("%d%d",&a,&b);
// if(dfs(a,b)) puts("1");
// else puts("0");
for(int i=1;i<=100;++i)
for(int j=i;j<=100;++j)
if(!dfs(i,j))cout<<i<<' '<<j<<endl;
return 0;
}
发现表是这样的
我们发现\(i\)和\(j\)似乎是成正比增长的,不妨输出j/i看看
当\(i,j\)较大时大概稳定在略大于\(6.18\)的位置
于是就有了\(AC\)代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int a,b;
int main()
{
scanf("%d%d",&a,&b);
if(a>b) swap(a,b);
if(ceil(a*1.618)==b) puts("0");
else puts("1");
return 0;
}
最新文章
- matplotlib绘制多组 散点连线图【用于对比】待实现
- Objective-C基础数据类型-NSSet[转]
- Jquery easy UI 上中下三栏布局 分类: ASP.NET 2015-02-06 09:19 368人阅读 评论(0) 收藏
- KindEditor提交用jquery获取不到数据的解决方法
- 强连通+二分匹配(hdu4685 Prince and Princess)
- 剑指offer-第三章高质量的代码(调整数组顺序使得奇数位于偶数的前面)
- js,css 和 html 分离,见仁见智
- uva1393 Highways
- JavaEE Servlet 核心方法及生命周期
- NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
- mybatis源码分析(二)------------配置文件的解析
- springMVC(五): 通过 HandlerMapping 获取 HandlerExecutionChain
- PAT 1023 Have Fun with Numbers[大数乘法][一般]
- vue复选框选中值获取
- android小游戏模版—重力感应
- MySQL字符集 GBK、GB2312、UTF8区别 解决 MYSQL中文乱码问题 收藏 MySQL中涉及的几个字符集
- eclipse svn插件
- pdb文件及引发的思考
- PropertyPlaceholderConfigurer使用及@Value使用注意事项
热门文章
- 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步
- MongoDB学习笔记(六)
- vue简介、入门、模板语法
- Prometheus Alertmanager 介绍详解
- 补习系列(12)-springboot 与邮件发送【华为云技术分享】
- Java 8——保存参数名称
- HTML+CSS学习笔记整理二
- tf.Session()函数的参数应用(tensorflow中使用tf.ConfigProto()配置Session运行参数&;&;GPU设备指定)
- Linux命令2
- Node.js自动本地重启服务器