第三届中国计量大学ACM程序设计竞赛 M 博弈论
题目链接:https://ac.nowcoder.com/acm/contest/5795/M
题目大意:有n堆石子。n一定为偶数。每次可以选择其中n/2堆。每堆可以任意取石头个数,必须取。谁不能取就输了。小陀螺先采取行动。如果小陀螺可以赢输出:Happy Little Gyro 否则输出:Sad Little Gyro
思路:
#include <bits/stdc++.h>
using namespace std;
int a[55];
int main(){
int t; scanf("%d", &t);
while(t--){
int n; scanf("%d", &n);
for(int i=1; i<=n; i++){
scanf("%d", &a[i]);
}
sort(a+1, a+1+n);
int ans=0;
for(int i=1; i<=n; i++){
if(a[i]==a[1]){
ans++;
}
}
if(ans>n/2){
printf("Sad Little Gyro\n");
}
else{
printf("Happy Little Gyro\n");
}
}
return 0;
}

查看23道真题和解析