题目传送门
题目大意
A A A 和 B B B 一起玩一种国际象棋的变体。
他们轮流放置骑士的游戏碎片,这样就不会有两个爵士互相威胁。
位于正方形 ( a , b ) (a,b) (a,b) 中的爵士可以威胁正方形 ( 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+1,b+2),(A−1,b+2),(A+1、b−2),(A+2,b−1),(A/2,b+1),(A−2,b−1)的位置。
不能在移动过程中放置新的爵士的玩家会输。考虑到两名球员都打得很好,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;
}
总结
我们只要仔细观察找出规律或者使用暴力程序打表瞅出规律,这题还是挺简单的。