是否存在路径(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
相关推荐
少许极端3 分钟前
算法奇妙屋(十五)-BFS解决边权为1的最短路径问题
数据结构·算法·bfs·宽度优先·队列·图解算法·边权为1的最短路径问题
c骑着乌龟追兔子15 分钟前
Day 27 常见的降维算法
人工智能·算法·机器学习
hetao173383717 分钟前
2025-12-02~03 hetao1733837的刷题记录
c++·算法
田里的水稻19 分钟前
math_旋转变换
算法·几何学
ada7_27 分钟前
LeetCode(python)——94.二叉
python·算法·leetcode·链表·职场和发展
AI视觉网奇30 分钟前
躯体驱动 算法学习笔记
人工智能·算法
魂梦翩跹如雨32 分钟前
P10424 [蓝桥杯 2024 省 B] 好数——Java解答
java·蓝桥杯
不穿格子的程序员34 分钟前
从零开始写算法——普通数组类题:数组操作中的“翻转技巧”与“前后缀分解”
数据结构·算法
逝雪Yuki37 分钟前
简单多源BFS问题
算法·leetcode·bfs·广度优先遍历
curry____30338 分钟前
study in PTA(高精度算法与预处理)(2025.12.3)
数据结构·c++·算法·高精度算法