不清楚为啥就RE了,求条
查看原帖
不清楚为啥就RE了,求条
1065071
Atserckcn楼主2024/8/6 20:36
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,q;
int f[N*2];
char op;
int x,y;
int findfather(int x)
{
	return f[x]==x?x:f[x]=findfather(f[x]);
}
void Union(int x,int y)
{
	f[findfather(x)]=findfather(y);
	return;
}
int main(){
	scanf("%d%d",&n,&q);
	for(int i=1;i<=2*n;i++)
		f[i]=i;
	while(q--)
	{
		cin>>op;
		scanf("%d%d",&x,&y);
		if(op=='R')
		{
			Union(x,y);
			Union(x+n,y+n);
		}
		else
		{
			if(op=='A')
			{
				Union(x+n,y);
				Union(y+n,x);
			}
			else
			{
				if(op=='Q')
				{
					if(findfather(x)==findfather(y)||findfather(x+n)==findfather(y+n))
						printf("R\n");
					else
					{
						if(f[findfather(x)+n]==f[findfather(y)]||f[findfather(x)]==findfather(y+n))
							printf("A\n");
						else
							printf("?\n");
					}
				}
			}
		}
	}
	return 0;
}

https://www.luogu.com.cn/record/171027810

2024/8/6 20:36
加载中...