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;
}