求助外网题
  • 板块学术版
  • 楼主Ultra_Limit
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/12 13:46
  • 上次更新2024/8/12 14:49:06
查看原帖
求助外网题
1284065
Ultra_Limit楼主2024/8/12 13:46

vjudgevjudge上Findthem,CatchthemFind them, Catch them这题MLEMLE了,代码如下,求改,谢谢!

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int st[10001];
int find_st(int p)
{
	if(st[p]<0)
	{
		return p;
	}
	return st[p]=find_st(st[p]);
}
void join_st(int p,int q)
{
	int pp=find_st(p);
	int qq=find_st(q);
	if(p!=q)
	{
		st[pp]=qq;
	}
}
int main()
{
	int t;
	char c;
	scanf("%d",&t);getchar();
	while(t--)
	{
		int n,m,t1,t2;
		memset(st,-1,sizeof(st));
		scanf("%d %d",&n,&m);getchar();
		while(m--)
		{
			scanf("%s%d%d",&c,&t1,&t2);getchar();
			if(c=='A')
			{
				if(find_st(t1)==find_st(t2)) printf("In the same gang.\n");
				else if(find_st(t1)==find_st(t2+n)) printf("In different gangs.\n");
			    else printf("Not sure yet.\n");
			}
			else if(c=='D')
			{
				join_st(t1,t2+n);
				join_st(t2,t1+n);
			}
		}
	}
	return 0;
}
2024/8/12 13:46
加载中...