Nim三连:Incredible Chess+Left Right +Matrix Game

Incredible Chess:

题意:在一张棋盘上有m个白色棋子和黑色棋子,他们只能向前移动或向后移动,谁不能移动时谁输
在这里插入图片描述
如标题所言,这是一个Nim游戏,我们就将他放到石子那个模型来讲吧。将每一列的棋子间距看作石子数,向前走(向对方走)是就是在不断的取石子,当两者相邻时,则剩下的走法已经固定(敌退我进),什么?你说他们还会背对对面走?不过背向走是木大的,你跑开,我追过来不就好了(括弧笑),所以如果对方在该时是必胜的,你跑开他就追相同的步数,又回到必胜局面,若果你是必胜局面,不会真有人拉开距离吧?不会吧不会吧,你拉开距离后可能就轮到你输了,聪明的你应该不会这样做的吧。所以当两方全部相邻后第一次移动方必输。

AC代码

#include<cstdio>

using namespace std;

int arr1[110], arr2[110],arr[110];

int main() {
	int t;
	scanf("%d", &t);
	for (int k = 1; k <= t; k++) {
		int n, ans = 0;
		scanf("%d", &n);
		for (int i = 1; i <= n; i++) scanf("%d", &arr1[i]);
		for (int i = 1; i <= n; i++) scanf("%d", &arr2[i]);
		for (int i = 1; i <= n; i++) {
			arr[i] = arr2[i] - arr1[i] - 1;
		}
		for (int i = 1; i <= n; i++) {
			ans ^= arr[i];
		}
		if (ans!=0) {
			printf("Case %d: white wins\n", k);
		}
		else {
			printf("Case %d: black wins\n", k);
		}
	}
	
}

Left Right

题意:在一条直线上,白球和黑球交替出现,数量相等,白球只能向右移动,黑球只能向左移动,且不能跳过球,获胜条件是对方不能移动。

这题显然是Nim博弈,两者间距就是每组石子的数量暴露了本蒟蒻只会石子游戏

Matrix Game

题意:在一个n*m的表格上,每个格子上有一定数量的石子,每次可以取任意一行中的任意格子上的任意数量石子,所以我们可以把一行的石子数看做原始石子游戏中的一堆石子数量又回到了石子游戏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值