90分,就第7个点没过,求救求调;
  • 板块P1551 亲戚
  • 楼主zhuimeng1233
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/4/23 15:57
  • 上次更新2023/10/23 17:43:17
查看原帖
90分,就第7个点没过,求救求调;
848091
zhuimeng1233楼主2023/4/23 15:57

90分,就第7个点没过,求救求调;

代码:


#include <iostream>
#include <string>
#include <bits/stdc++.h>
using namespace std;

int a=1,qq[5005];
int n,m,p;

bool zqq(int a,int b)
{
	//int te[5005],temp=0;
	int aaa=1;
	for (int i=1;i<=n;i++)
	{
		if(qq[i]==qq[a])
		 //te[++temp]=i;
		 {
		 	if(qq[i]==qq[b]&&qq[i]!=0&&qq[b]!=0)
		 	 aaa*=0;
		 }
	}
	
	
	if(aaa==0) return true;
	
	return false;
	
}

void qnm(int a,int b)
{
	int tem=qq[a];
	
	for (int i=1;i<=n;i++)
	{
		if(qq[i]==tem)
		 
		 {
		 	qq[i]=b;
		 }
	}
	
}



int main (){
//	freopen ("i.txt","w",stdout);
	
	cin>>n>>m>>p;
	int mi,mj;
	
	for (int i=1;i<=m;i++)
	{
		cin>>mi>>mj;
		if(qq[mi]==0&&qq[mj]==0)
		 {
		 	qq[mi]=qq[mj]=a++;
		 }
		 
		else 
		 {
		 	if(qq[mj]==0) qq[mj]=qq[mi];
		 	else if(qq[mi]==0) qq[mi]=qq[mj];
		 	else qnm(mj,qq[mi]);
		 }
	}
	cout<<endl<<"-------------------"<<endl;
	
	for (int i=1;i<=n;i++)
	{
		
		cout<<i<<"--->"<<qq[i]<<endl;

	}
	cout<<endl<<"-------------------"<<endl;
	
	for (int i=1,pi,pj;i<=p;i++)
	{
		cin>>pi>>pj;
		if(zqq(pi,pj))
		 cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
	
	return 0;
  }
2023/4/23 15:57
加载中...