SP16139 CODCHESS - Naya Shatranj (New Chess) 题解

题目传送门

题目大意

A A A B B B 一起玩一种国际象棋的变体。

他们轮流放置骑士的游戏碎片,这样就不会有两个爵士互相威胁。

位于正方形 ( a , b ) (a,b) (ab) 中的爵士可以威胁正方形 ( A + 1 , b + 2 ) , ( A − 1 , b + 2 ) , ( A + 1 、 b − 2 ) , ( A + 2 , b − 1 ) , ( A / 2 , b + 1 ) , ( A − 2 , b − 1 ) (A+1,b+2),(A-1,b+2),(A+1、b-2),(A+2,b-1),(A/2,b+1),(A-2,b-1) (A+1b+2),(A1b+2),(A+1b2),(A+2b1),(A/2b+1),(A2b1)的位置。

不能在移动过程中放置新的爵士的玩家会输。考虑到两名球员都打得很好,A先发,找出哪名球员获胜。

T T T 次放置。 A A A 赢输出0; B B B 赢输出1;

解题思路

这道题目其实不难,我们可以打表找规律。

n = 1 n=1 n=1 时 A 赢。

n = 2 n=2 n=2 时 B 赢。

n = 3 n=3 n=3 时 A 赢。

n = 4 n=4 n=4 时 B 赢。

……

由此可见,当 n n n 为奇数时,A 赢,否则 B 赢。

我们也可以推导出这个结论,一共有两个人进行比赛,那么,当 n n n 为奇数时,第一个人需要拿走 1 1 1 个后,每一回合与敌方所取的数量的总和为 2 2 2 才行,否则,作为后手获胜。

CODE:

#include <stdio.h> 
int main() {
	int t;
	scanf("%d", &t);
	while (t--) {
        int n;
		scanf("%d", &n);
		printf("%d\n", (n % 2 == 0 ? 1 : 0));
	}
	return 0;
}

总结

我们只要仔细观察找出规律或者使用暴力程序打表瞅出规律,这题还是挺简单的。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值