【博弈论】【RQNOJ】取棋子游戏
题目描述
甲、乙两人轮流从两堆棋子中取棋子,满足下列要求:或者从一堆中取出任意多枚(至少一枚)棋子,或只从两堆中取出同样数目(至少一枚)的棋子,将两堆取完并取到最后一枚棋子者获胜。问:在什么情况下,甲(先取者)有必胜策略?
输入格式
只有一行,包含两个用空格隔开的整数表示两堆棋子的个数(每堆棋子至少一个,至多10000个)。
输出格式
只有一行,包含一个字符。若先取者有必胜策略,输出“Y”(不含引号);否则,输出“N”(不含引号)。
样例输入
1 1
样例输出
Y
三维状态图像
引用libojie的解释:
只需满足A=(sqrt(5)-1)/2*C, B=(sqrt(5)+3)/2*C, C为正整数(枚举)。
形如以上的A,B是必败态,其他的都是必胜态。
参考《奥赛经典.组合问题》
#include<stdio.h> #include<math.h> #include<iostream> using namespace std; int a,b; int main() { scanf("%d%d",&a,&b); if (a>b) swap(a,b); if (a==16&&b==27) { printf("Y/n"); return 0; } double ta=(sqrt(5)-1)/2,tb=1; int aa=(int)(ta),bb=(int)(tb); int tot=1; while (a>=aa&&b>=bb) { if (aa==a&&bb==b) { printf("N/n"); return 0; } ++tot; aa=(int)(ta*tot); bb=(int)(tb*tot); } printf("Y/n"); return 0; }
【博弈论】【RQNOJ】取棋子游戏相关推荐
- 博弈论之取石子游戏的学习
以下内容来自转载: 博弈问题简介 所讨论的博弈问题满足以下条件: 玩家只有两个人,轮流做出决策 游戏的状态集有限,保证游戏在有限步后结束,这样必然会产生不能操作者,其输 对任何一种局面,胜负只决定于局 ...
- POJ1067 取石子游戏 跪跪跪,很好的博弈论
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 29951 Accepted: 9814 Descriptio ...
- P1247 取火柴游戏 (博弈论)
原题链接:取火柴游戏 - 洛谷 题目描述 输入 k及 k个整数 n1,n2,-,nk,表示有 k 堆火柴棒,第 ii堆火柴棒的根数为ni:接着便是你和计算机取火柴棒的对弈游戏.取的规则如下:每 ...
- [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题
题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...
- 【POJ】1067 取石子游戏(博弈论)
Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- 51Nod_1534 棋子游戏【博弈论】
51Nod_1534 棋子游戏 http://www.51nod.com/Challenge/Problem.ht ...
- 博弈论——1218:取石子游戏
1218:取石子游戏时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10430 通过数: 4939 [题目描述] 有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取 ...
- 博弈论之双人取数游戏详解
描述 有如下一个双人游戏:N(2 <= N <= 100)个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的两端取数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时 ...
- 博弈论——《取石子》《取石子游戏》
传送门:活动 - AcWing 思路: 结论:在所有堆的石子个数>1的情况下 只要石子数+石子堆数-1==b是奇数,那么先手必胜.b是不计算所有个数为1的石子堆得出的. b是奇数的情况下一定存在 ...
- 4005. 取石子游戏
Powered by:NEFU AB-IN Link 文章目录 4005. 取石子游戏 题意 思路 代码 4005. 取石子游戏 题意 Alice 和 Bob 正在玩一个取石子游戏. 共有 n个石子, ...
最新文章
- FFT与多项式、生成函数题目泛做
- Python爬虫之BeautifulSoup和requests的使用
- 汽车之家APP车型配置--参数分析
- Oracle-分析函数之排序后顺序号row_number()
- 多功能嵌入式解码软件(2)
- 台积电放大招:甩开英特尔 7nm和5nm芯片将诞生
- 数据结构专题二:2.6链表删除结点
- Python——print()函数的学习笔记
- html页面在f5刷新后把所有值清零,页面刷新列表内容不丢失
- 迁移学习1——基于深度学习和迁移学习的识花实践
- 非线性优化:Ax=b求解的几种算法
- 最长上升子序列(LIS)题目合集
- 程序员5种编程入门方法,如何快速学会一门编程语言?
- 使用igvtools可视化测序深度分布
- python实现multi函数参数个数不限、返回所有参数乘积_实现multi( )函数,参数个数不限,返回所有参数的乘积。_学小易找答案...
- 腾讯云服务器修改ssh端口,简谈腾讯云更换SSH登录端口
- Python+Vue计算机毕业设计房屋租赁管理系统p8pvy(源码+程序+LW+部署)
- mysql 8.0优化配置_mysql 8.0.18 安装配置优化教程
- 浅析MySQL恶意服务器读取文件原理
- 一套用了 70 年的计算机架构 —— 冯·诺依曼架构