

思路:牌分为三类:
只有小明有 只有小华有 两人都有
如果小明的独占牌比小华多,他就能撑得更久,必胜;反之则必败。
#include <stdio.h>
#include <stdbool.h>
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n, m, k;
scanf("%d %d %d", &n, &m, &k);
bool hua[1001] = {false};
bool min[1001] = {false};
for (int i = 0; i < m; i++) {
int x;
scanf("%d", &x);
if (x >= 1 && x <= n) hua[x] = true;
}
for (int i = 0; i < k; i++) {
int x;
scanf("%d", &x);
if (x >= 1 && x <= n) min[x] = true;
}
int only_a = 0, only_b = 0, both = 0;
for (int i = 1; i <= n; i++) {
if (hua[i] && min[i]) {
both++;
} else if (hua[i]) {
only_a++;
} else if (min[i]) {
only_b++;
}
}
bool ming_wins;
if (only_a > only_b) {
ming_wins = true;
} else if (only_a < only_b) {
ming_wins = false;
} else {
// only_a == only_b
ming_wins = (both % 2 == 1);
}
if (ming_wins) {
printf("Ming\n");
} else {
printf("Hua\n");
}
}
return 0;
}