求助这段代码写的有什么问题
查看原帖
求助这段代码写的有什么问题
235901
Always_Remember_It楼主2023/10/17 22:33
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e3+10;
int a[N],f1[N],f2[N],f3[N],b[N];
bool t;
void dfs(int c[],int m,int cnt,int last){
	if(cnt>last) return;
	if(t) return;
	if(m==1){
		t=1;
		cout<<"Huoyu"<<endl<<cnt<<endl;
		for(int i=0;i<cnt;i++){
			cout<<f1[i]<<" "<<f2[i]<<" "<<f3[i]<<endl;
		}
		return;
	}
	for(int i=1;i<=m-2;i++){
		for(int j=i+1;j<=m-1;j++){
			for(int k=j+1;k<=m;k++){
				int u=c[i]^c[j]^c[k];
				if(u==0){
	 				memset(b,0,sizeof(b));
					int s=c[i];
					for(int l=i+1;l<=k;l++){
						s=(s^c[l]);
					}
					for(int l=1;l<i;l++){
						b[l]=c[l];
					}
					b[i]=s;
					for(int l=i+1;l<=m-k+i;l++){
						b[l]=c[l-i+k];
					}
					f1[cnt]=i,f2[cnt]=j,f3[cnt]=k;
					dfs(b,m-k+i,cnt+1,last);
				}
			}
		}
	}
}
signed main(){
	int T;cin>>T;
	while(T--){
		int n;cin>>n;
		if(n>70){
			for(int i=1;i<=n;i++){
				int p;cin>>p;
			}
			cout<<"Shuiniao"<<endl;
			continue;
		}
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		t=0;
		dfs(a,n,0,n);
		if(!t) cout<<"Shuiniao"<<endl;
	}
	return 0;
}
2023/10/17 22:33
加载中...