求助
查看原帖
求助
1068071
wangft楼主2024/4/15 22:39
#include<iostream> 
using namespace std;
int e[100000],a[100000],b[100000],total[1001][100000];
int t,n,p,h,tol;
void f(int k){
	int i,j,o;
	if(k==n){
	h++;
	o=1;
    for(i=k;i>=1;i--)
    if(e[i]==1){
    	if(o==1){
    		b[h]=a[k-i];
    		o=0;
		}
		else{
			b[h]=b[h]^a[k-i];
		}
	}
	}
	else{
		e[k+1]=0;
		f(k+1);
		e[k+1]=1;
		f(k+1);
	} 
}
void er(int u){
	while(u>0){
		h++;
		if(u%2==1)
		total[tol][h]=1;
		else total[tol][h]=0;
		u/=2;
	}
}
int main(){
     int i,j,k,l,o,w;
     cin>>t;
     tol=0;
     for(i=1;i<=t;i++){
     	tol++;
		cin>>n;
     	h=0;
     	w=0;
     	for(j=0;j<=n;j++)cin>>a[j];
        f(0);
        h++;
        e[h]=a[n];
        for(j=1;j<h;j++)
        if(b[j]==b[j+1])w++;
        cout<<w<<endl; 
        h=0;
        er(w);
        total[tol][0]=h;
        tol++;
	 }
	 for(i=1;i<=tol;i++){
	 for(j=total[i][0];j>=1;j--)
	 cout<<total[i][j];
	 cout<<endl;
}
}

求助大佬

2024/4/15 22:39
加载中...