ybtoj比赛 9.20B组 A博弈论棋盘战争
Posted SSL_ZZL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ybtoj比赛 9.20B组 A博弈论棋盘战争相关的知识,希望对你有一定的参考价值。
>At first
解题思路
先考虑一个环
后手赢的情况:除了只有一个点的其他情况
再考虑n个环
上一回的赢家就是下一回的后手
只有当1个点的环时,才会改变先后手(其他时候都是后手赢)
当1个点的数量为奇数时,先手赢,反之后手赢
。。。。话说这游戏这么不公平真的好吗
Code
#include <bits/stdc++.h>
using namespace std;
const int rabbit = 1, hamster = 0; //对,我就是比较装
int T, n, a[1010];
int main() {
freopen("chess.in", "r", stdin);
freopen("chess.out", "w", stdout);
scanf("%d", &T);
while(T --) {
scanf("%d", &n);
int ans = 0;
for(int i = 1; i <= n; i ++) {
scanf("%d", &a[i]);
if(a[i] == 1) ans ++; //统计一个点的环
}
if(ans % 2 == rabbit) printf("rabbit\\n");
else printf("hamster\\n");
}
}
以上是关于ybtoj比赛 9.20B组 A博弈论棋盘战争的主要内容,如果未能解决你的问题,请参考以下文章
ybtoj 博弈论课堂过关luogu P1247luogu P2197模板nim 游戏 & 取火柴游戏 &例题1取火柴游戏