B. 我要成为数据结构大师
我要成为数据结构大师
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
我要成为数据结构大师
时间限制:1s
空间限制:125MB
当时考数据结构的时候,我当时给奇垦林写了个深度优先搜索,但是他看不懂当时就给我打了个叉,过了半个月找我才想起来“你那个好像是对的”
题目背景
从回忆中醒来, 望着数据结构考场上的题目“如何判断图中是否有环”这题想起来的话,什么什么深度优先搜索和。。。。什么算法来着,答案就在嘴边但是就是想不起来。但是 想起来他的老师可是 ,要是我当场先手搓一个算法相比是可以让我过的把。众所周知的复杂度可以维护99%的数据结构,所以多少也可以拿一半分。
当场就灵光乍现,假如我对传说中的最短路径算法进行一个改进,
算法是一种用于寻找图中两个节点之间最短路径的算法。其基本原理如下:
初始化:
为每个节点分配一个距离值,初始时将起始节点的距离设为0,其他节点的距离设为无穷大(代表未知)。
建立一个未访问的节点集合,初始时包含所有节点。
访问节点:
从未访问的节点中选择距离起始节点最近的节点,将其标记为访问过。
对于当前节点的每一个邻居:
计算从起始节点到该邻居的距离(当前节点的距离 + 当前节点到邻居的边的权重)。
如果计算得到的距离小于当前记录的距离,则更新该邻居的距离。
重复过程:
重复步骤2,直到所有节点都被访问或找到目标节点的最短路径。
终止:
当目标节点被访问时,算法停止,此时记录的距离即为最短路径。
那么我们只要在查询最短路径的返回查找这个点在不在路径上不就行了

题目描述
接下来你只需帮yq完成最后一步,写一个程序判断无向图中两个点是否连通
输入格式
我将给出一个整数 ,有共个顶点,每个顶点都有编号,从1开始
我将给出一个整数,共有个边(无向图)
接下来行给出两个数,代表边的起始点和终点的编号
我将给出一个整数,接下来行代表组询问
每行给出两个数,代表边的这两点的编号
输出格式
输出行,对应个提问
可以连通则输出,不可以则输出
样例输入1
5
1
1 2
1
1 2
样例输入2
yes
显然有1~2的路径
数据范围及约定