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

相似题目: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. C# 数据结构之嵌套加法、嵌套乘法

    复杂性度量问题 1.大O复杂度:嵌套加法 找出以下代码片段的 Big O 复杂度. using System; namespace Chapter_1 { class Challenge_1 { st ...

  2. the origin of month name in English

    序号 月份 简述 详述 1 January Janus神 罗马神话的神Janus,双面,门神 2 February Februa节 古罗马人都要杀牲饮酒,欢庆菲勃卢姆节(Februarius).忏悔自 ...

  3. 《Python深度学习》《卷积神经网络的可视化》精读

    对于大多数深度学习模型,模型学到的表示都难以用人类可以理解的方式提取和呈现.但对于卷积神经网络来说,我们可以很容易第提取模型学习到的表示形式,并以此加深对卷积神经网络模型运作原理的理解. 这篇文章的内 ...

  4. [USACO12FEB]Overplanting S

    洛咕 题意:在一个笛卡尔平面坐标系里(X轴向右是正方向,Y轴向上是正方向),有\(N(1<=N<=1000)\)个矩形,第\(i\)个矩形的左上角坐标是\((x1, y1)\),右下角坐标 ...

  5. ubuntu 替换国内源,清华源

    参考 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ Ubuntu 的软件源配置文件是 /etc/apt/sources.list.将系统自带的该文 ...

  6. Grafana + Prometheus 监控 Zookeeper

    废话不多说,前几篇已经相应的介绍Grafana 跟 Prometheus,如有不清楚,请参考: https://www.cnblogs.com/zgz21/p/12054518.html https: ...

  7. 封装python代码,避免被轻易反编译

    可使用Cython对python代码进行封装,封装成.pyd库,大致流程可参考: cython打包py成pyd,pyinstaller打包uvicorn服务过程记录_Bolly_He的博客-CSDN博 ...

  8. Codeforces Round #769 (Div. 2) - D. New Year Concert

    GCD + st表 + 二分 Problem - 1632D - Codeforces 题意 给出一个长度为 \(n\;(1<=n<=2*10^5)\) 的数组 \(a[i]\;(1< ...

  9. 有关箭头函数的this知识

    总结: 结果: 2,箭头函数正确的使用方法. 结果: 总结: 箭头函数不要直接在对象的属性上用.比如上面的函数3.

  10. 有符号数 无符号数 原码 补码 反码 java用补码表示

    计算机数字的储存分为:1.无符号数,2.有符号数 无符号数:只能表示正数.每一位数都代表2的幂次方.只有地址用无符号数,无符号数不进行算术操作,之进行指针的加减.地址并不会造成错误的结果,而是产生一个 ...