假设无向图G上有N个点和M条边,点编号为1到N,第i条边长度为w_i,其中H个点上有可以食用的牧草。另外有R匹小马,第j匹小马位于点start_j,需要先前往任意一个有牧草的点进食牧草,然后前往点end_j,请你计算每一匹小马需要走过的最短距离。输入描述第一行两个整数N、M,分别表示点和边的数量接下来M行,第i行包含三个整数x_i,y_i,w_i,表示从点x_i到点y_i有一条长度为w_i的边,保证x_i≠y_i接下来一行有两个整数H和R,分别表示有牧草的点数量和小马的数量接下来一行包含H个整数,为H个有牧草的点编号接下来R行,第j行包含两个整数start_j和end_j,表示第j匹小马起始位置和终点位置题目保证两个点之间一定是连通的,并且至少有一个点上有牧草对于20%的数据,1<=N、R<=10,1 <=w_i<=10;对于40%的数据,1<=N、R<=100,1<=w_i<=100;对于100%的数据,1<=N、R<=1000,1<=w_i<=100000;对于所有数据,N-1<=M<=2N,1<=H<=N。下载编译并运行p132_data.cpp生成随机测试数据输出描述输出共R行,表示R匹小马需要走过的最短距离样例输入3 21 2 11 3 11 321 33 32 2样例输出340
Question
假设无向图G上有N个点和M条边,点编号为1到N,第i条边长度为w_i,其中H个点上有可以食用的牧草。另外有R匹小马,第j匹小马位于点start_j,需要先前往任意一个有牧草的点进食牧草,然后前往点end_j,请你计算每一匹小马需要走过的最短距离。输入描述第一行两个整数N、M,分别表示点和边的数量接下来M行,第i行包含三个整数x_i,y_i,w_i,表示从点x_i到点y_i有一条长度为w_i的边,保证x_i≠y_i接下来一行有两个整数H和R,分别表示有牧草的点数量和小马的数量接下来一行包含H个整数,为H个有牧草的点编号接下来R行,第j行包含两个整数start_j和end_j,表示第j匹小马起始位置和终点位置题目保证两个点之间一定是连通的,并且至少有一个点上有牧草对于20%的数据,1<=N、R<=10,1 <=w_i<=10;对于40%的数据,1<=N、R<=100,1<=w_i<=100;对于100%的数据,1<=N、R<=1000,1<=w_i<=100000;对于所有数据,N-1<=M<=2N,1<=H<=N。下载编译并运行p132_data.cpp生成随机测试数据输出描述输出共R行,表示R匹小马需要走过的最短距离样例输入3 21 2 11 3 11 321 33 32 2样例输出340
Solution
首先,我们需要读取输入数据。根据题目描述,第一行包含两个整数N和M,表示点和边的数量。我们可以使用两个变量来存储这些值。
接下来的M行包含边的信息,每行包含三个整数x_i,y_i和w_i,表示从点x_i到点y_i有一条长度为w_i的边。我们可以使用一个列表来存储这些边的信息。
然后,我们需要读取H和R,分别表示有牧草的点数量和小马的数量。我们可以使用两个变量来存储这些值。
接下来的一行包含H个整数,表示有牧草的点的编号。我们可以使用一个列表来存储这些点的编号。
最后,我们需要读取R行,每行包含两个整数start_j和end_j,表示第j匹小马的起始位置和终点位置。我们可以使用一个列表来存储这些起始位置和终点位置的信息。
接下来,我们可以开始计算每一匹小马需要走过的最短距离。我们可以使用Dijkstra算法来解决这个问题。
首先,我们需要初始化一个距离列表dist,用于存储每个点到起始位置的最短距离。我们可以将起始位置的距离初始化为0,其他点的距离初始化为无穷大。
然后,我们需要使用一个优先队列来存储待处理的点。我们可以将起始位置加入优先队列中。
接下来,我们进入一个循环,直到优先队列为空。在每次循环中,我们从优先队列中取出距离起始位置最近的点。
然后,我们遍历该点的所有邻居,并更新它们的最短距离。如果更新后的距离比原来的距离小,我们将该点加入优先队列中。
最后,当我们处理完所有的点后,我们可以得到每个点到起始位置的最短距离。
最后,我们可以遍历每一匹小马,根据它们的起始位置和终点位置,从距离列表中找到对应的最短距离,并将其累加到结果中。
最终,我们可以输出每一匹小马需要走过的最短距离。
Similar Questions
给 John写一封英文邮件,内容如下: 很抱歉再次打扰到您。 昨天Yutong有跟反馈到她吃泡面的碗被收走了,这让Yutong有点沮丧,由于刚到夏校,她有点想家,吃不习惯学校的食物,她希望可以吃自己带来的泡面。 我们很理解学校出于安全原因收走了碗,但有没有可能让员工帮她泡一下,或者提供学校的餐具给她。让她可以吃到泡面?
语文应用 A组 从所提供的词语中,选出短文所缺的词语。① 停留② 锐利③ 敏捷④ 清脆⑤ 灵活⑥ 隐约⑦ 拼命⑧ 迅速 翠鸟喜欢停在水边的苇秆(wěi gǎn)上,一双红色的小爪紧紧地抓住苇秆。翠鸟小巧玲珑,Q1. ( ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ) 的眼睛下,长着细长的嘴。 翠鸟有着一身鲜艳的羽毛,鸣叫声非常Q2. ( ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ) 。它爱贴着水面疾(jí)飞,一转眼又轻轻地停在苇秆上,一动也不动地注视着泛起微波的水面,等待游到水面上的小鱼。 尽管小鱼是那么的机灵,只悄悄地把头露出水面来吹个小泡泡,可是仍难以逃脱翠鸟Q3. ( ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ) 的眼睛。有时,小鱼Q4. ( ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ) 可见,翠鸟就蹬(dēng)开苇秆,像箭一样地飞过去,很快地叼起一条小鱼,再贴着水面往远处飞走,留下那还在摇晃的苇秆和荡漾的水波。 有个孩子想捉一只翠鸟来养,老渔翁对他说:“你知道翠鸟的家在哪里吗?沿着小溪走去,在那陡峭(dǒu qiào)的石壁上。洞口很小、很深,不容易捉到翠鸟啊!”小孩只好在翠鸟飞来的时候,远远地看着它那一身美丽的羽毛,希望它在苇秆上多Q5. ( ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ )一会儿。
1、正羽正羽被覆在体外的大型羽毛,由羽轴和羽片构成。羽轴下段不具羽毛的部分叫做羽根,着生在皮肤中。羽轴上段的两侧发出许多羽支,每个羽支再向两侧发出许多羽小支,一侧的羽小支上生有小钩,一侧的羽小支上有槽,使相邻的羽小支互相钧结,形成结构紧密而具有弹性的羽片。正羽有飞翔、护体、保温等作用。2、绒羽绒羽密生在正羽下面,羽支细长成丝状,着生于羽根的顶端。羽小支短,顶部簇生细丝状羽枝,羽小枝上无钩不具羽纤支或细钩,不能连成羽片,因此羽支蓬松成绒形。水禽绒羽比较发达,鸭绒就是这种羽毛。雏鸟破壳后体表所覆的绒羽叫雏绒羽,绒羽具有保暖的作用。3、半绒羽半绒羽介于绒羽与正羽之间的一种羽毛,具正羽的结构但缺乏羽小钩和凸缘,因此像绒羽一样蓬松。一般分布于正羽之下。具有保暖隔热作用。4、纤羽纤羽亦称“毛羽”,散在正羽及绒羽之间,只具一细长羽干,毛发状,顶端有少许羽枝及羽小枝。毛羽的基本功能是触觉
她从脖子上解下围巾,走到离年轻人不远的一棵小树前,将围巾系在树枝上。妈妈看到马丽的举动后,Q18. ( ① 感到 ② 认为 ③ 浮现 ④ 想象)不理解,问道:“你为什么把围巾系在小树上?”马丽没有说话,她往年轻人的方向看了看。妈妈明白了,但还是有些疑问:“既然你想帮助那个人,为什么不直接将围巾送到他手中?”
众所周知,所有的无限循环小数都可以写成分数的形式,小红想让你判断循环节长度为k的无限循环小数的分母是否可能是p。共有q次询问。循环节定义:如果无限小数的小数点后,从某一位起向右进行到某一位置的一节数字循环出现,首尾衔接,称这种小数为循环小数,这一节数字称为循环节。用c语言输入:第一行输入一个正整数q,代表询问次数。接下来的q行,每行输入两个正整数k,p,代表一次询问。输出q行,如果存在一个分子a,满足a/p为循环节长度为k的无限循环小数,则输出YES,否则输出NO
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.