WA 并查集68pts 求调
查看原帖
WA 并查集68pts 求调
484007
cute_chuanpu楼主2022/7/30 20:41
#include<iostream>
using namespace std;
int n,m,p,q,father[200005],a,b,ans[200005],cnt;
char s[200005],tmp;
int f(int x){
	if(father[x]==x) return x;
	return father[x]=f(father[x]);
}
int add(int x,int y){
//	if(f(y)!=f(x))
	father[f(x)]=f(y);
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) father[i]=i;
	for(int i=1;i<=m;i++){
		cin>>s[i];
	} 
	for(int i=1;i<=n-1;i++){
		cin>>a>>b;
		if(s[a]==s[b]){
			add(a,b);
		} 
	}
	for(int i=1;i<=m;i++){
		cin>>a>>b>>tmp;
		if(f(a)==f(b)&&s[a]!=tmp){
        	    ans[++cnt]=0;
     		}else ans[++cnt]=1;
	}
	for(int i=1;i<=cnt;i++) 
            cout<<ans[i]; 
	return 0;
} 

WA记录

2022/7/30 20:41
加载中...