CF1695B Circle Game 题解

题目传送门

1.思路#

这是一道模拟题,我们不妨来思考一下必胜策略。当 $ n $ 为奇数时,$ Mike $ 只需要在第一轮将第一堆石子全部取走,接下来都拿奇数位置的石子便可以必胜。如果 $ n $ 为偶数,$ Mike $ 会一直拿奇数位置的石子,$ Joe $ 会一直拿偶数位置的石子。所以我们要找到一个石子数最小的石子堆,用 $ ans $ 记录它的位置。判断这个 $ ans $ 的奇偶性,如果为奇就 $ Joe $ 赢,如果为偶则 $ Mike $ 赢。

2.代码#

#include<bits/stdc++.h>
using namespace std;
int t,stone[205],n;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>t;//数据组数
	while(t--){
		cin>>n;//石子堆数
		for(int i=1;i<=n;i++)
			cin>>stone[i];
		if(n%2==1){//Mike必胜情况
			cout<<"Mike"<<endl;
			continue;
		}
		int ans=1;
		for(int i=1;i<=n;i++)
			if(stone[i]<stone[ans])
				ans=i;//找到石子堆中数量最少的,记录位置
		if(ans%2==1)
			cout<<"Joe"<<endl;//Joe必胜
		else
			cout<<"Mike"<<endl;//Mike必胜
	}
	return 0;//完结撒花
}

作者:God_Max_Me

出处:https://www.cnblogs.com/lizihan00787/p/18323133

版权:本作品采用「God_Max_Me-非商业性使用」许可协议进行许可。

posted @   God_Max_Me  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示