由题意可知,这题和巴什博弈没什么关系了

相似题目: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;
}

UVA10404的更多相关文章

随机推荐

  1. wpf DataGrid cell 背景色修改参考

    <DataTemplate.Triggers> <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource ...

  2. C# RGB转Brush

    C#中自定义一个Brush,使用Color赋RGB值给Brush: dataGrid2.HorizontalGridLinesBrush = new SolidColorBrush(System.Wi ...

  3. ESXi 基础安全加强(ing...)

    # 查看防火墙规则esxcli network firewall ruleset allowedip list # 允许指定ip使用web服务和客户端访问[root@localhost:~] esxc ...

  4. Docker学习笔记-02 常用命令

    1.启动类: 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart ...

  5. vue 图片转base 64

    // 将图片转换为Base64imageUrlToBase64(img) { // 一定要设置为let,不然图片不显示 let image = new Image(); // 解决跨域问题 image ...

  6. CF1548B Integers Have Friends

    洛咕 题意: 给定 \(n\) 和一个长度为 \(n\) 的数组 \(a\),求一个最长的区间 \(\left[l,r\right]\),使得存在 \(m\geq 2\) 和 \(k\),对于所有 \ ...

  7. BottomNavigationBar 自定义 底部导航条、以及实现页面切换

    一.Flutter BottomNavigationBar 组件 BottomNavigationBar 是底部导航条,可以让我们定义底部 Tab 切换,bottomNavigationBar是 Sc ...

  8. python中的platform模块

    platform模块给我们提供了很多方法去获取操作系统的信息: import platform print(platform.platform())# 获取操作系统名称和版本号:macOS-10.14 ...

  9. HTML学习笔记3----制作一个简易网站

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  10. Python中的容器、迭代器、生成器

    容器是一系列元素的集合,str.list.set.dict.file.sockets对象都可以看作是容器,容器都可以被迭代(用在for,while等语句中),因此他们被称为可迭代对象. 可迭代对象实现 ...