| 比赛 |
2026.8.26 |
评测结果 |
AAAAWWWWWWWWWWWWWWWW |
| 题目名称 |
merge |
最终得分 |
20 |
| 用户昵称 |
__0w0__ |
运行时间 |
0.228 s |
| 代码语言 |
C++ |
内存使用 |
8.44 MiB |
| 提交时间 |
2026-08-26 11:46:09 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[501],t;
struct DP{
int z;//num
bool f;
int a,b,c;//转移过来的三元组
}dp[501][501];
inline void output(int f){
if(!f){
puts("Shuiniao");
}else{
puts("Huoyu");
// cout<<js<<'\n';
}
}
int main(){//目标复杂:O(TN^3)
freopen("mergeegrem.in","r",stdin);
freopen("mergeegrem.out","w",stdout);
cin>>t;
while(t--){//O(TN*6)
memset(dp,0,sizeof(dp));
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
dp[i][1].z=a[i];
dp[i][1].f=1;
}
if(n==1){//25pts (1~5)
puts("Huoyu\n0");
}else if(n==2){
puts("Shuiniao");
}else if(n==3){
if(a[1]^a[2]^a[3]){
puts("Shuiniao");
}else{
puts("Huoyu\n1\n1 2 3");
}
}else if(n==4){
int y=a[1]^a[2]^a[3]^a[4];
if(y^a[2]&&y^a[3]){//134 124
puts("Shuiniao");
}else{
puts("Huoyu\n1");
if(y^a[2])puts("1 2 4");
else puts("1 3 4");
}
}else if(n==5){//125 135 145 (123 345)
int y=a[1]^a[2]^a[3]^a[4]^a[5],f=0;
if((y^a[3]^a[4]&&y^a[2]^a[3]&&y^a[2]^a[4])&&y)f=-1;
if(f==-1){
puts("Shuiniao");
}else{
if(!y){
puts("Huoyu\n2");
if(y^a[4]^a[5]){
puts("3 4 5\n1 2 3");
}else{
puts("1 2 3\n1 2 3");
}
}else{
if(y^a[3]^a[4]==0)puts("1 2 5");
else if(y^a[2]^a[3])puts("1 4 5");
else puts("1 3 5");
}
}
}else{
// int cnt=0;
// for(int l=3;l<=n;l++){
// for(int i=1;i<=n-l+1;i++){
// int j=l+i-1;
// for(int m=i+1;m<j;m++){
// for(int x=m+1;x<=j;x++){
// for(int l2=1;l2<=m-i;l2++){
// for(int l3=1;l3<=j-m;l3++)
// }
// if(dp[i][m-i].z^dp[m][j-m].z^dp[x][j-x+1].z==0){
// dp[i][l].f=1;
//// dp[i][l].z=que(i,j);
// }
// }
// }
// }
// }
// output(dp[1][n].f);
puts("Shuiniao");
}
}
fclose(stdin);
fclose(stdout);
return 0;
}