博弈论是真的难!?
给你两个数,每次只能从大的那个减去小的数的正整数倍,先得到零的人获胜
分析一下,(假设为x,y,且x>y),x=ky+z,若k>=2,那么我(是不是就可以为所欲为了)想一下减完或者,留一个给对手减是不是都行,然后我再往后分析下,我不就必胜了么?
所以遇到了这种情况或者我可以直接赢的情况(x%y==0)直接输出就好了,否则再找这种情况不就得了(除了这两种情况,我只能规规矩矩的减,正整数倍)
1 #include<iostream> 2 using namespace std; 3 4 bool fun(int &a,int &b)//返回1就出现了赢家 5 { 6 int t1=max(a,b); 7 int t2=min(a,b); 8 a=t2; 9 b=t1%t2; 10 if(t1%t2)//表示非整除 11 { 12 if(t1/t2>=2)//不能整除但是系数大于0也结束 13 return 1; 14 else//继续 15 return 0; 16 } 17 else 18 { 19 return 1;//能整除就结束 20 } 21 } 22 int main(void) 23 { 24 int c; 25 cin>>c; 26 while(c--) 27 { 28 int a,b; 29 cin>>a>>b; 30 bool flag=1;//1表示stan嬴 31 while(!fun(a,b)) 32 { 33 flag=!flag; 34 } 35 if(flag==1) 36 cout<<"Stan wins"<<endl; 37 else 38 cout<<"Ollie wins"<<endl; 39 } 40 return 0; 41 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端