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

相似题目: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. SAP 附件功能 PRD环境无法删除 VIEW_ATTA

    如图:界面上面没有打勾确认按钮 解决方案:来源网址 How to disable, delete and edit buttons function in attachment list. | SAP ...

  2. js获取url中的查询参数

    // 获取url中query // return {cate_id: '1', street_id: '0'} function getParams() { var url = location.se ...

  3. jsonpath表达式

    JsonPath是一种简单的方法来提取给定JSON文档的部分内容,其中正则表达式的包含或不包含配制有时候非常有用! json操作实例 { "store": { "book ...

  4. 新年快乐!体验Windows7黄金版,祝你2023财源广进!

    新年快乐!体验Windows7黄金版,祝你2023财源广进! 首先,开机画面表示出它的土豪,并说明,它并不来自Microsoft. 然后: 它是2016年出现的. 改成64位的. 然后许可: 自定义: ...

  5. 本地JAR包如何上传私有仓库

    需求背景 有些第三方的jar包需要手动上传到maven私有仓库,以便通过maven来管理依赖. 为简化手动上传的jar包的操作步骤,所以整了个脚本,在使用时只需修改相应变量即可. 脚本示例 #!/bi ...

  6. shell转义字符

    \n      回车 \b      单词边界 \w      [a-Z0-9]中任意一个字符 \W      [^a-Z0-9] \d      [0-9]中任意一个数字 \D      [^0-9 ...

  7. struts2 显示表格

    <%@ taglib uri="/struts-tags" prefix="s"%> <h3>All Records:</h3&g ...

  8. Java-面向对象基础 this& 重载

    1.this表示当前对象 获取当前对象的属性 使用this调用当前属性 2.重载 如果两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载

  9. 计数 dp 部分例题(六~十部分)

    六.转化求和顺序(線形和への分解) 例题1 题意 有一个长为 \(n\) 的数组 \(a\).求在 \(a\) 中选择 \(k\) 个数的所有方案中,每次选择的所有数的中位数的和.\(n\le 10^ ...

  10. string转JSONObject顺序不变和 往map放数据按顺序

    JSONObject field = JSONObject.parseObject(fieldStr,Feature.OrderedField); Map<String,String> m ...