P1290 欧几里德的游戏】的更多相关文章

P1290 欧几里德的游戏 原本不想写的,但细节有些多qwq,还是放上吧. 假设a严格大于b 当a<b*2时,只有一种方法往下走:否则就可以有多种方法,并且一定至少有一种可以使自己必胜,因为可以随意决定接下来取的顺序(可在草稿纸上推算) 然后注意细节(我交了3次才过QAQ) #include<iostream> #include<cstdio> using namespace std; int main() { int c,p; long long a,b; scanf(&q…
P1290 欧几里德的游戏 题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于0.然后是Ollie,对刚才得到的数,和M,N中较小的那个数,再进行同样的操作……直到一个人得到了0,他就取得了胜利.下面是他们用(25,7)两个数游戏的过程: Start:25 7 Stan:11 7 Ollie:4 7 Stan:4 3 Ollie:1 3 S…
题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于0.然后是Ollie,对刚才得到的数,和M,N中较小的那个数,再进行同样的操作--直到一个人得到了0,他就取得了胜利.下面是他们用(25,7)两个数游戏的过程: Start:25 7 Stan:11 7 Ollie:4 7 Stan:4 3 Ollie:1 3 Stan:1 0 Stan赢得…
欧几里德的两个后代 Stan 和 Ollie 正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数 M 和 N,从 Stan 开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于 0.然后是 Ollie,对刚才得到的数,和 M,N 中较小的那个数,再进行同样的操作……直到一个人得到了 0,他就取得了胜利.下面是他们用 (25,7) 两个数游戏的过程: Start:(25,7) Stan:(11,7) Ollie:(4,7) Stan:(4,3) Ollie:…
题目:https://www.luogu.org/problemnew/show/P1290 只要出现n>=2*m,就可以每次把较大的数控制在较小的数的一倍与二倍之间,则控制了对方的走法: 每次取后两个数大小交换,这时可能出现整除,而上述方法可以保证每次可能出现整除时都轮到自己,所以必胜. 代码如下: #include<iostream> #include<cstdio> using namespace std; typedef long long ll; ll c,n,m;…
P1290 [欧几里德的游戏] 真·做题全凭感性 从题目中很容易看出 这是一道\(Gcd\)的题 同时又结合了一些略略的博弈论(丢下锅跑真爽 我们看,辗转相减的\(a,b\)一共只有两种情况 \(a-b<b,a>b\),就是\(a\)比\(b\)大,但是比$b \(的两倍小,这种情况时.我们的\)S\(和\)O$君就只能硬着头皮去舰减了. \(a>2b\),就是a比b的二倍大.这时候我们的\(S\)和\(O\)君就需要ta们的大脑进行一波用命分析-1s,-1s. PS:a b是变量 因为…
这题没必要那么麻烦,只需要推理一下即可: 假设我们有两个数\(x,y\),先把\(x\)设为较大值,\(y\)设为较小值.现在分成三种情况: \(1\).若两数为倍数关系,操作的一方赢. \(2\).若两数商\(>1\),那么还是操作一方赢. \(why?\) 比如就拿\(25,7\)来说.这时的操作方有三种选择:\(18\) \(7\),\(11\) \(7\),\(4\) \(7\) 如果他选\(18\) \(7\),那后者就面对的是\(11\) \(7\)或\(4\) \(7\):而如果他…
题目地址 题目大意: 两个人st和ol博弈 有两个整数n,m 每次轮到一个人时候,需要选择用大的那个数减去小的那个数的倍数(不能减为负数) 最后得到0的为胜利者 思路: (以下讨论均在n<m的条件下) 一. 首先考虑一种简单的情况m/n==1 那么每次轮到的人就只有一种选择m-n 然后还满足上述条件,则重复 二. m/n>=2 假设m=kn+p 假设(n,p)是一个必胜点 当前状态为(n,m) 但是当前的操作者不想把这个必胜点留给对方 所以这个操作者选择转移到(n,m-(k-1)*n) --&…
题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数不能小于0.然后是Ollie,对刚才得到的数,和M,N中较小的那个数,再进行同样的操作……直到一个人得到了0,他就取得了胜利.下面是他们用(25,7)两个数游戏的过程: Start:25 7 Stan:11 7 Ollie:4 7 Stan:4 3 Ollie:1 3 Stan:1 0 Stan赢得…
https://www.luogu.com.cn/problem/P1290 博弈论游戏,用到mod. 辗转相除法的过程,会构成n种状态. 到达最后一个状态就赢了. 对于一次过程如果div>1那么只要把该状态下的最后一个留给对方,自己始终是占据状态的初始位,那么一定是赢的. 第二种情况,如果div==1,那么只有一种状态,那么必然要把状态拱手相让. 对于a_i>1,....=1,a_j>1,如果说在这一过程里,j-i为偶数,那么中间会转移奇数次状态,那么a_j和a_{i+1}状态不同,那…