就前五个点对是怎么回事
查看原帖
就前五个点对是怎么回事
566190
我是歌者楼主2023/7/26 13:28
#include<bits/stdc++.h>
using namespace std;
int f[100000],n,m;
char mapp[100000];
int find(int k){
	if(f[k]==k) return k;
	else return f[k]=find(f[k]);
}
int merge(int x,int y){
	f[find(x)]=find(y);
}

int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		f[i]=i;
		cin>>mapp[i];
	}
	for(int i=1;i<n;i++){
		int x,y;
		cin>>x>>y;
		if(mapp[x]==mapp[y]){
			merge(x,y);
		}
	}
	int a,b;
	char c;
	while(m--){
		cin>>a>>b>>c;
		if(find(a)==find(b)&&mapp[a]!=c) cout<<0;
		else cout<<1;
	}
	
	return 0;
}
2023/7/26 13:28
加载中...