更好的阅读体验
题意
快乐硬币
一行硬币被给出,一些属于 LXH
,而另一些属于 HHB
。现在这两个家伙要玩游戏了。在每一轮游戏中,每个玩家可以选择任意两个连续的硬币,并将其转换为一个硬币,如果两个硬币属于同一个人,则新的硬币将获得 hhb
,否则将属于 lxh
。这两个人轮流玩这个游戏, LXH
先玩。我们在游戏结束时只会剩一枚硬币。现在的问题是,假设两个玩家在游戏中表现最佳,那么最终硬币属于哪个人?
思路
首先无论如何操作,结果不变。因为属于 LXH
和 hhb
的硬币数量是固定的。也就是说,我们只需要判断属于 lxh
的硬币个数是否为奇数就可以了。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b;
scanf("%d",&a);
while(a--) {
int ans = 0;
scanf("%d",&b);
for(int i = 1;i <= b;i++) {
string c;
cin>>c;
if(c == "lxh") ans++;
}
printf(ans % 2?"lxh\n":"hhb\n");
}
return 0;
}