85,TLE
查看原帖
85,TLE
1069816
Tsuki091117楼主2023/10/17 21:08
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
int x,y,g,ans;
string s1[N],s2[N],s3[N],s4[N];
string n1,n2,n3;
map<string,string> f;
string find(string x){
	return f[x]==x?x:f[x]=find(f[x]);
}
void merge(string x,string y,string z){
	f[x]=x;
	f[y]=x;
	f[z]=x;
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>x;
	for(int i=1;i<=x;i++){
		cin>>s1[i]>>s2[i];	
	}
	cin>>y;
	for(int i=1;i<=y;i++){
		cin>>s3[i]>>s4[i];
	}
	cin>>g;
	while(g--){
		cin>>n1>>n2>>n3;
		merge(n1,n2,n3);
	}
	for(int i=1;i<=x;i++){
		if(find(s1[i])!=find(s2[i])){
			ans++; 
		}
	}
	for(int i=1;i<=y;i++){
		if(find(s3[i])==find(s4[i])){
			ans++;
		}
	}
	cout<<ans;
	return 0;
}
2023/10/17 21:08
加载中...