WA了,求助
查看原帖
WA了,求助
637910
youyouzi2324楼主2023/12/19 17:44
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+7;
int fa[N],rel[N];
int n,m;
int getfa(int x)
{
	if(x==fa[x])
	{
		return x;
	}	
	int fx=getfa(fa[x]);
	rel[x]=(rel[x]+rel[fa[x]])%2;
	return fa[x]=fx;
}
void mergef(int x,int y)
{
	int fx=getfa(x);
	int fy=getfa(y);
	
	fa[fy]=fx;
	rel[fy]=(2-rel[y]+1+rel[x])%2;
}
int main(){
	int t,a=0;
	cin>>t;
	while(t--)
	{
	    a++;
	    printf("Scenario #%d:\n", a);
		cin>>n>>m;
		for(int i=1;i<=n;i++){
			fa[i]=i;
			rel[i] = 0;
		}
			
		int x,y,fx,fy;
		bool flag=false;
		for(int i=1;i<=m;i++){
			cin>>x>>y;
			fx=getfa(x);
			fy=getfa(y);
			if(fx==fy)
			{
				if((rel[y]-2-rel[x])%2==0)
				{
					flag=true;
					break;
				}
			}
			else
			{
				mergef(x,y);
			}
		}
		if(flag)
		{
//		    cout<<"Scenario #"<<a<<":"<<endl;
			printf("Suspicious bugs found!\n");
		}
		else
		{
//		    cout<<"Scenario #"<<a<<":"<<endl;
			printf("No suspicious bugs found!\n");
		}
	}
	return 0;
}

2023/12/19 17:44
加载中...