是否存在路径(FIFOBB算法)

题目描述

一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。

输入

第一行两个整数,分别表示n 和 e 的值(1 <= n <= 2 * 10^5, 0 <= e <= 2 * 10^5);

下面e行,每行两个整数,分别表示一条边的两个顶点;

最后一行两个整数,分别表示 source 和 destination的值。

输出

若存在从顶点 source到顶点 destination的路径,则输出true;否则,输出false。

样例输入 Copy

3 3

0 1

1 2

2 0

0 2

样例输出 Copy

true

复制代码
#include<bits/stdc++.h>
using namespace std;
int n,e;
int main ()
{
	cin>>n>>e;
	vector<vector<int>> graph(n);
	for(int i=0;i<e;i++)
	{
		int u,v;
		cin>>u>>v;
		graph[u].push_back(v);
		graph[v].push_back(u);
	}
	int s,d;
	cin>>s>>d;
	if(s==d)
	{
		cout<<"true"<<endl;
		return 0;
	}
	vector<bool>visited(n,false);
	queue<int>q;
	q.push(s);
	visited[s]=true;
	while(!q.empty())
	{
		int current=q.front();
		q.pop();
		for(int i=0;i<graph[current].size();i++)
		{
			int jb=graph[current][i];
			if(!visited[jb])
			{
				if(jb==d)
				{
					cout<<"true"<<endl;
					return 0;
				}
				visited[jb]=true;
				q.push(jb);
			}
		}
	}
	cout<<"false"<<endl;
	return 0;
}
//by crtzk7
相关推荐
燃于AC之乐1 小时前
我的算法修炼之路--4 ———我和算法的爱恨情仇
算法·前缀和·贪心算法·背包问题·洛谷
MM_MS7 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E7 小时前
【二分法】寻找峰值
算法
mit6.8247 小时前
位运算|拆分贪心
算法
ghie90908 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体18 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9988 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx8 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++8 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd9 小时前
C++引用:高效编程的别名利器
算法