首页 > 其他分享 >最短时间——BFS

最短时间——BFS

时间:2023-04-18 20:00:21浏览次数:39  
标签:city 短时间 int 城市 40 BFS vis

最短时间

有若干个城市,它们之间有道路连通,可以互相到达,从一个城市到另一个城市时间为1。现在给出起点城市A,终点城市B,和N条道路。问从A到B最短时间。
image

输入

第一行A,B,N(A,B,N<=30),B为最大城市标号

接下来N行,每行两个数x,y,表示城市x和城市y有道路相连。

输出

输出最短时间。

样例输入

1 7 9
1 2
1 4
2 3
3 5
4 5
4 6
1 6
6 7
5 7

样例输出

2

提示

城市1可以通过1——6——7到达城市7,花费最短时间为2.




#include <bits/stdc++.h>
using namespace std;
int a,b,n,dis[40],vis[40];
bool city[40][40];
queue<int> q;
void chushihua()
{
	q.push(a);
	vis[a]=1;
	dis[a]=0;
}
void bfs()
{
	chushihua();
	while(!q.empty())
	{
		int x=q.front();
		q.pop();
		vis[x]=0;
		for(int i=1;i<=b;i++)
		{
			if(city[x][i]&&!vis[i])
			{
				q.push(i);
				vis[i]=1;
				dis[i]=dis[x]+1;
				if(i==b)
				{
					cout << dis[i];
					exit(0);
				}
			}
		}
	}
}
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin >> a >> b >> n;
	for(int i=1;i<=n;i++)
	{//邻接矩阵存储数据
		int x,y;
		cin >> x >> y;
		city[x][y]=1;
		city[y][x]=1;
	}
	bfs();
	return 0;
}

标签:city,短时间,int,城市,40,BFS,vis
From: https://www.cnblogs.com/momotrace/p/shortest-time_pr.html

相关文章

  • LeetCode 双周赛 102,模拟 / BFS / Dijkstra / Floyd
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,欢迎来到小彭的LeetCode周赛解题报告。昨晚是LeetCode双周赛第102场,你参加了吗?这场比赛比较简单,拼的是板子手速,继上周掉大分后算是回了一口血......
  • Google快速排名:揭秘独立站如何在短时间内提升搜索排名
    随着互联网的发展,许多站长都在关注Google快速排名的方法。作为一名拥有多年运营经验的站长,我将在本文中分享一些实用的技巧,帮助大家在短时间内提升Google搜索排名。1.网站内容质量为王高质量的原创内容是提升Google搜索排名的关键。站长们需要不断更新网站内容,确保文章具有独特性......
  • POJ 1753 Flip Game(bfs枚举+递推)
    题目地址:http://poj.org/problem?id=1753这题此前曾经做过,但当时是用的纯BFS做的,然后后来又做了一次组队赛,那是16*16的,果断超时超内存。。能超的都超了。。于是又找了个更好的方法,就是枚举第一行,然后后面的根据第一行的情况推下去。比如,你要让所有的都变成W,如果上一行的对应位置是B......
  • 天梯赛练习题 L3-008 喊山(bfs)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805050709229568输入样例:75412233145561457输出样例:2640#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAX......
  • 天梯赛练习题 L3-004 肿瘤诊断(bfs)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805052626026496输入样例:3452111111111111001100110011101101000000101100000000000100011000输出样例:26LLdz[]={1,-1,0,0,0,0},dx......
  • spfa求最短路——BFS,数组实现邻接表,数组实现队列
    题目描述题目来源AcWing给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个......
  • Leetcode(剑指offer专项训练)——DFS/BFS专项(2)
    课程顺序题目现在总共有numCourses 门课需要选,记为 0 到 numCourses-1。给定一个数组 prerequisites,它的每一个元素 prerequisites[i] 表示两门课程之间的先修顺序。 例如 prerequisites[i]=[ai,bi] 表示想要学习课程ai ,需要先完成课程bi 。请根据给出的......
  • Leetcode(剑指offer专项训练)——DFS/BFS专项(1)
    计算除法题目给定一个变量对数组equations和一个实数值数组values作为已知条件,其中equations[i]=[Ai,Bi]和values[i]共同表示等式Ai/Bi=values[i]。每个Ai或Bi是一个表示单个变量的字符串。另有一些以数组queries表示的问题,其中queries[j]=[Cj,Dj]......
  • 「双端队列BFS」电路维修
    本题为3月23日23上半学期集训每日一题中B题的题解题面题目描述Ha'nyu是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女Rika,从而被收留在地球上。Rika......
  • A strange lift HDU - 1548 (BFS)
    题意:第i个火车站都有一个数字Ki(0≤Ki≤N),火车在第i站只能前进Ki站或后退Ki站。火车只能在第1站和第N站之间行驶。请问,从第a站到第b站最少需前进或后退......