萌新求助,opt,p,q都读不进去;改了快半个小时心态已崩,跪求
查看原帖
萌新求助,opt,p,q都读不进去;改了快半个小时心态已崩,跪求
503129
sine1111楼主2021/5/9 21:39
#include<bits/stdc++.h>
using namespace std;
int i,x,a[1010],e[1010],n,m,c,d,opt,p,q,ans=0,s,h;
int find(int x) {
	if (x==a[x])
	    return x;
	else 
	    return a[x]=find(a[x]);
	
}
void join(int c,int d){
    s=find(c);
	h=find(d);
	a[s]=h;
}
int main()
{
	scanf("%d%d",&n,&m);;
	for(i=1;i<=n;i++)
	   a[i]=i;
	for(i=1;i<=m;i++)
	{
	    scanf("%d%d%d",&opt,&p,&q);
	    if(opt==69)
	      join(p,q);	      
	   else
		{
	    	if (e[p]==0)
	    	   e[p]=find(q);
	    	else 
			   join(p,e[q]);
	    	if(e[q]==0)
	    	  e[q]=find(p);
			else
			  join(q,e[p]);
        }
    }	  
    for(i=1;i<=n;i++){
    	if (a[i]==i)
	    ans=ans+1;
}
    cout<<ans;
	return 0;
}
2021/5/9 21:39
加载中...