巴什博弈

巴什博弈

问题模型:两个人从个物体中取,取物品,规定每次至少取一个,最多取m个,最后取光者得胜。

结论:当n%(m+1)==0先手必败.否则先手必胜
若是最后取光者输的话,其他条件不变,(n-1%(m+1)==0 先手必败,否则必胜

下面上例题:

石子争夺战
Description
这有一堆石子,总共有n个。UpMing和King_Zhang两个人正在路上散步,恰好瞧见了这堆石子,UpMing想要拿这堆石子去做装饰品,而King_Zhang也有自己的想法,因此两个人决定进行一场游戏,赢的人可以拿走这一堆石子。

游戏的规则是UpMing和King_Zhang两个人轮流拿,UpMing先拿。每个人每一次最少拿1颗,最多拿K颗,能拿到最后1颗石子的人获胜。假设UpMing和King_Zhang两人都非常聪明,在拿石子的过程中不会出现任何的失误。题目要求给出两个整数N和K,问最后两人中到底谁能赢得比赛并拿走这一堆石子。假如N=3,K=2。无论UpMing如何拿,King_Zhang都可以拿到最后1颗石子并赢得游戏的胜利。

Input
输入包含两个整数N和K。(1≤N≤1e9, 1≤K≤1e9);

Output
请你打印出游戏的结果究竟是谁获胜并且拿走了这一堆石子。如果UpMing获胜,则打印"UpMing",反之则打印"King_Zhang"。(打印时不包含引号)。

Samples
Input Copy
10 3
Output
UpMing

#include<bits/stdc++.h>
using namespace std;
int main() {
	long long n,k;
	cin>>n>>k;
	if(n%(k+1)==0)
		cout<<"King_Zhang";
	else
		cout<<"UpMing";
	return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值