求助!6点黑了!!!!!!!
  • 板块P1551 亲戚
  • 楼主caojiaming
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/8/18 10:59
  • 上次更新2023/11/3 02:57:42
查看原帖
求助!6点黑了!!!!!!!
775551
caojiaming楼主2023/8/18 10:59

我这40分样例过了怎么回事啊

#include <bits/stdc++.h>
using namespace std;
vector<int> ve[5100];
int n,m,p;
vector<int> operator +(vector<int> a,vector<int> b)
{
	int l1=a.size(),l2=b.size();
	vector<int> c={};
	map<int,bool> cnt;
	for(int i=0;i<l1;i++)
	{
		if(cnt[a[i]]==0)
		{
			cnt[a[i]]=1;
			c.push_back(a[i]);
		}
	}
	for(int j=0;j<l2;j++)
	{
		if(cnt[b[j]]==0)
		{
			cnt[b[j]]=1;
			c.push_back(b[j]);
		}
	}
	return c;
}//每个vector存储每个人的亲戚,亲戚有传递性,所以需要合并
//两个vector
signed main()
{
	cin>>n>>m>>p;
	for(int i=1;i<=m;i++)
	{
		int m1,m2;
		scanf("%d%d",&m1,&m2);//类似邻接表存储
		ve[m1].push_back(m2);
		ve[m2].push_back(m1);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<ve[i].size();j++)
		{
			ve[i]=ve[i]+ve[ve[i][j]];//合并
		}
	}
	for(int i=1;i<=p;i++)
	{
		int p1,p2;
		scanf("%d%d",&p1,&p2);
		//查找ve[p1]中有没有p2,有输出Yes,没有输出No.
		vector<int>::iterator it=find(ve[p1].begin(),ve[p1].end(),p2);
		if(it==ve[p1].end())
		{
			cout<<"No";
		}
		else
		{
			cout<<"Yes";
		}
		cout<<"\n";
	}
    return 0;
}
2023/8/18 10:59
加载中...