CCF认证 2017-09 通信网络

对一个点来说,找到所有与它相连的,可以正向BFS一次,然后反向BFS一次,统计经过了多少个不同的点

然后最多有1000个点,直接暴力每一个点,注意尽量节约时间就好了

之后做了个类似的题,发现了新的做法:http://blog.csdn.net/wl16wzl/article/details/78773666

#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int N=1000+10;
vector g[N],g0[N];
bool vis[N],vis0[N];
int n,m;
int main()
{
	int a,b,ans=0;
	scanf("%d%d",&n,&m);
	for(int i=0;i q;
	q.push(k);
	vis[k]=true;
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		int l=g[u].size();
		for(int i=0;i


你可能感兴趣的:(CCF认证历年真题)