SCUT - 290 - PARCO的因数游戏 - 博弈论
https://scut.online/p/290
一个 N 个数的取数游戏,Kaildls 和 Parco 轮流操作,每次操作从 N 个数中取一个数 y 并把他变成 y-x(满足 x | y 且x < y),无法操作的人输。
假设 Kaildls 先手且两人都是用最优策略,请问最后谁会赢?
第一次学SG函数,要找的是每次能从石子堆中取走的数目,记录下来。
最后的Nim和为0是后手赢?
#include<bits/stdc++.h> using namespace std; #define ll long long#define MAXN 1000005 #define N 1000005//f[N]:可改变当前状态的方式,N为方式的种类,f[N]要在getSG之前先预处理 //SG[]:0~n的SG函数值 //S[]:为x后继状态的集合 vector<int> nextofSG[MAXN]; int f[N],SG[MAXN],S[MAXN]; void getSG(int n){for(int i = 2; i <= n; i++){int l=nextofSG[i].size();//后继状态 最多有l 种for(int j=0;j<=l;j++){S[j]=0;}for(auto vi:nextofSG[i]){//vi:从i状态能取走的石子数S[SG[i-vi]]=1;}for(int j=0;j<=l;j++){if(!S[j]){SG[i] = j;break;}}//cout<<"SG["<<i<<"]="<<SG[i]<<endl; }}int a[1000005];unsigned generateai(unsigned &n,unsigned &x,unsigned &y, unsigned &z){x=x^(x<<11);x=x^(x>>4);x=x^(x<<5);x=x^(x>>14);unsigned w=x^(y^z);x=y;y=z;z=w;return z; }int main(){unsigned n,x,y,z;for(int i=1;i<=1000000;i++){for(int j=i+i;j<=1000000;j+=i){nextofSG[j].push_back(i);}}getSG(1000000);for(int t=0;t<100;t++){cin>>n>>x>>y>>z;int sumSG=0;for(int i=0;i<n;i++){a[i]=generateai(n,x,y,z)%n+1;//cout<<a[i]<<endl;sumSG^=SG[a[i]];}//cout<<"!"<<sumSG<<endl;if(sumSG==0)cout<<"Parco"<<endl;else{cout<<"Kaildls"<<endl;}} }
转载于:https://www.cnblogs.com/Yinku/p/10421254.html
SCUT - 290 - PARCO的因数游戏 - 博弈论相关推荐
- BZOJ 1022 Luogu P4279 [SHOI2008]小约翰的游戏 (博弈论)
题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1022 (luogu) https://www.luogu.org/pro ...
- 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])
文章目录 T1:仓鼠的石子游戏 题目 题解 代码实现 T2:乃爱与城市拥挤程度 题目 题解 代码实现 T3:小w的魔术扑克 题目 题解 代码实现 T1:仓鼠的石子游戏 题目 仓鼠和兔子被禁止玩电脑,无 ...
- 蓝桥杯 填字母游戏(博弈论)
小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格子,要小明和他交替 ...
- [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题
题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...
- 美女和男人的游戏 博弈论
美女和男人的游戏,这是很经典的案例了,游戏规则是:男女各投一次硬币,如果男女的硬币都是正面,则男人+3:如果都是反面,则男人+1:如果一正一反,则男人-1. 女\男 正面 反面 正面 +3 -2 反面 ...
- [XSY]Illyasviel的图游戏(博弈论)
Illyasviel的图游戏 除了1号点和n号点每个点度数小于等于2,因此1 到 n 的所有简单路径互不相交. 在结束游戏前的最后一步一定是剩下一条 1 到 n 的路径,并且路径上的权值全都是1. 游 ...
- vijos1196|吃糖果游戏|博弈论
描述 Matrix67和Shadow正在做一个小游戏. 桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作.在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆( ...
- 分花生游戏 (博弈论)
Description 4月6日,我校Nicholas代表队做火车前往湖北武汉大学参加"百度杯"第二届华中北区ACM程序设计邀请赛, 在火车上老师和队员们觉得要找点事情来做,于是小 ...
- P1199 [NOIP2010 普及组] 三国游戏-博弈论+贪心
[NOIP2010 普及组] 三国游戏 题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N N N ...
最新文章
- /xiaolei.php|martin_十步解决Php Utf-8编码(转贴)
- 【深度学习模型的训练与评估】一个实例:Iris多分类
- 在github上面下载文件夹的方法666
- (转)wamp2.5虚拟主机VirtualHost出现403 Forbidden问题解决
- java中的布局文件改成,Android 动态设置布局文件的exception
- ASP.NET 2.0 中的 Theme 功能
- Qt编写的线损分析工具
- vue中src文件夹下各文件_Win10下与虚拟机中的linux共享文件夹
- html中form标签的作用style,HTML5中meta常用标签属性说明
- 老男孩教育每日一题-2017-04-25:怎样产生一个子shell?
- mysql 主键自增_还再使用数据库自增主键吗?
- 分拣外观残缺的机器人_【移动机器人(AGV)联盟一周要闻】
- 自动摘要学习计划(英语)
- python滤波器信号处理_详解利用Python scipy.signal.filtfilt() 实现信号滤波
- win10如何微信多开(无需工具)
- JQuery22( JQ原理 Clone)
- 正则表达式科学计数法_数据科学家的正则表达式
- ES3数组和字符串的方法
- VM虚拟机占内存非常大
- js获取android系统版本号,JS获取系统版本和手机型号
热门文章
- Javascript三种创建对象的方法,new关键字,for...in 遍历对象
- 【王道计组笔记】高速缓存器:局部性原理及性能分析
- 【深度优先搜索】网格类问题:牛客网:机器人的运动范围
- 【二叉树】剑指offer:二叉树中序遍历的下一个节点
- 【动态规划】蓝桥2020:画廊
- docker 中文文档_Kubernetes将弃用Docker,不必恐慌
- Springboot项目启动时加载数据库数据到内存
- html弄多个按钮_如何为HTML / CSS页面添加更多按钮?
- 【CCCC】L3-015 球队“食物链” (30分),搜索排列
- 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性