RE0分求助
查看原帖
RE0分求助
750598
Prophet_Inkpigeon楼主2023/7/9 16:28
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll read()
{
	short f=1;ll x=0;char s=getchar();
	while(s<48||s>57){f=s=='-'?-1:1;s=getchar();}
	while(s>=48&&s<=57){x=x*10+s-48;s=getchar();}
	return x*f;
}
int f[30001],d[30001],n[30001];
int found(int x)
{
	if(x==f[x])return x;
	int y=found(f[x]);
	d[x]=d[x]+d[f[x]];
	f[x]=y;return f[x];
}
int main()
{
	for(int i=1;i<=30000;++i){f[i]=i;n[i]=1;}
	int t=read(),x,y,a,b;char s;
	while(t--)
	{
		scanf("%c%d%d",&s,&x,&y);
		a=found(x);b=found(y);
		if(s=='M')
		{
			if(a!=b)
			{
				d[a]=d[a]+n[b];f[a]=b;
				n[b]=n[b]+n[a];n[a]=0;
			}
		}
		else
		{
			if(a!=b)puts("-1");
			else printf("%d\n",abs(d[x]-d[y])-1);
		}
	}
	return 0;
}

代码已经改得变成题解的复制品了,但是题解可以成为题解,而我的代码仍然是0分(悲)

2023/7/9 16:28
加载中...