UVA10404
2024-09-18 22:14:18
由题意可知,这题和巴什博弈没什么关系了
相似题目:AtCoder Beginner Contest 278 F - Shiritori
- 预备知识:DP,博弈论的必胜态和必败态
问题的关键是确定\(f_n\)是必胜态还是必败态?
而必胜态由必败态转移而来
- 如果当前\(i-a_j\)这个位置是必败态,那么\(i\)这个位置就是必胜态
- 由于\(m\)比较多,我们考虑用DP来转移状态
- 其中0代表必败态,1代表必胜态
- 转移方程 $f_i=1 $ \((0≤i-a_j,f_{i-a_{j}}=0)\)
- 单个数据的时间复杂度 \(O(mn)\)
// AC one more times
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int N = 1e6+10;
int a[11],n,m,f[N];
int main()
{
std::ios::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr);
// 特殊输入 请注释上方,如__int128等
int TC = 1;
while(cin>>n)
{
cin>>m;
for(int i=1;i<=m;i++) cin>>a[i];
for(int i=1;i<=n;i++) f[i]=0;
// 0 代表必输态
// 1 代表必胜态
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(i>=a[j]&&f[i-a[j]]==0)
f[i]=1;
if(f[n])
cout<<"Stan wins"<<endl;
else cout<<"Ollie wins"<<endl;
}
return 0;
}
最新文章
- UML动态模型图简单介绍
- 利用libpcap打印ip包
- poj 1651 Multiplication Puzzle (区间dp)
- use selenium in scrapy webdriver
- django: template variable
- [canvas]通过动态生成像素点做绚丽效果
- Qt &#39;void QWidget::show()&#39; is inaccessible
- 每个Web开发者必备的9个软技能
- DEVTMPFS
- Java线程-异常处理
- [官网]How to configure the Microsoft Distributed Transaction Coordinator (MSDTC) on Linux
- react案例->;新闻移动客户端--(react+redux+es6+webpack+es6的spa应用)
- java进阶书籍推荐(不包括基础)
- TensorFlow激活函数+归一化-函数
- Eclipse 项目导入 Android Studio 导致的乱码问题
- Vuex结合 async/await 优雅的管理接口请求
- 跟着未名学Office - 高效笔记OneNote
- django-权限验证场景
- collections, time, queue的应用
- Java中return返回结果的优先级
热门文章
- Educational Codeforces Round 143 (Rated for Div
- 树莓派 Zero W 安装 apache2 + php
- HTML中javascript的<;script>;标签使用方法详解
- 【git】git子模块操作-从子模块的远端拉取上游修改 &; 从项目远端拉取更改
- 所谓的安装phpmyadmin
- 分治-1-归并排序(Divide and Conquer-1-merge sort)
- 简易舰c远征计时器(HTML)
- docker和常用的中间件安装汇总
- RPS网卡多队列
- UI设计圈年终福利,错过一次等一年!