30分求助
查看原帖
30分求助
796940
OIer_xmf楼主2024/3/5 17:38
#include<bits/stdc++.h>
using namespace std;
long long x,y,n,m,b[100005];
struct nome{
	long long x,y,z;
}a[100005];
void dfs(long long s,long long m,long long d){
	if(d==y){
		cout<<s<<endl;
		return;
	}
	if(m==n+1){
		cout<<0;
		return;
	}
	for(int i=1;i<=n;i++){
		if(a[i].x==d&&b[i]==0){
			b[i]=1;
			d=a[i].y,s=s^a[i].z;
			dfs(s,m+1,d);
			d=a[i].x,s=s^a[i].z;
			b[i]=0;
		}
		if(a[i].y==d&&b[i]==0){
			b[i]=1;
			d=a[i].x,s=s^a[i].z;
			dfs(s,m+1,d);
			d=a[i].y,s=s^a[i].z;
			b[i]=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n-1;i++)cin>>a[i].x>>a[i].y>>a[i].z;
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		dfs(0,0,x);
	}
	return 0;
}

有绿有黑

到底哪错了!!!到底哪里能优化!!!

2024/3/5 17:38
加载中...