你来擒孟获(最短路)

题目描述
三国时期,南蛮王孟获叛乱,诸葛亮起兵平乱。
当深入南蛮之地时,遇当地人绘得地图,发现各地分别由各个寨主据守,若诸葛亮想兵分多路进军,尽快占领各个山寨(必须占领所有山寨),并且最终所有士兵都汇聚到孟获所在山寨,若给你一次穿越的机会,你用程序告诉诸葛亮最少需要多少天才能完成这个任务。假设军队足够多,各分队行军速度一样,且诸葛亮神机妙算,到达每个山寨即日可以攻克。

输入
首先是一个正整数T,接下来是T组测试数据,每组数据第一行是两个整数n,m(2=<n<=1000,1=<m<=10000),分别表示山寨数量和总边数,山寨编号0,1,2,3….n-1
接下来m行,每行三个整数i,j,k(0=<i,j<n,k<=10^4),分别表示山寨i和山寨j之间有一条路,在这条路上需要行军k天,接下来一行两个整数s,t(0<=s,t<=n-1),分别表示诸葛亮所在部队的起点和孟获山寨所在终点的编号

输出
对每组数据输出一个整数,表示诸葛亮的士兵占领所有山寨并汇聚到孟获所在山寨所需要的最少天数,每个输出独占一行

样例输入
2
5 6
0 1 2
1 2 2
3 1 2
4 0 3
3 2 3
3 4 1
4 3
5 5
1 0 1
1 2 3
1 3 3
4 2 2
3 4 1
4 2

样例输出
7
9

求出所有点到起点,终点最短路权值,然后相加取最大,dijkstra算法

 1 # include <iostream>
 2 # include <cstdio>
 3 # include <cstring>
 4 # include <algorithm>
 5 # include <cmath>
 6 using namespace std;
 7 #define INF 0x3f3f3f3f
 8 #define Max 1001
 9 int cost[Max][Max];
10 int d[Max];
11 bool used[Max];
12 void dijkstra(int n,int s)
13 {
14     memset(d,INF,sizeof(d));
15     memset(used,false,sizeof(used));
16     d[s]=0;
17     while(true)
18     {
19         int v=-1;
20         for(int u=0;u<n;u++)
21             if(!used[u]&&(v==-1||d[u]<d[v]))
22                 v=u;
23         if(v==-1)
24             break;
25         used[v]=true;
26         for(int u=0;u<n;u++)
27         {
28             d[u]=min(d[u],d[v]+cost[u][v]);
29         }
30     }
31 }
32
33 int main()
34 {
35     int T,m,n,k,i,j;
36     int from,to,Cost,f,t;
37     freopen("in.txt","r",stdin);
38     cin>>T;
39     while(T--)
40     {
41         memset(cost,INF,sizeof(cost));
42         cin>>n>>m;
43         for(i=0;i<m;i++)
44         {
45             cin>>from>>to>>Cost;
46             cost[from][to]=cost[to][from]=Cost;
47         }
48         cin>>f>>t;
49         dijkstra(n,f);
50         int Time[Max],tim=0;
51         memset(Time,0,sizeof(Time));
52         for(i=0;i<n;i++)
53             Time[i]=d[i];
54         dijkstra(n,t);
55         for(i=0;i<n;i++)
56         {
57             Time[i]+=d[i];
58             tim=max(tim,Time[i]);
59         }
60         cout<<tim<<endl;
61
62     }
63 }
时间: 2024-10-17 04:23:57

你来擒孟获(最短路)的相关文章

驱巨善六破蛮兵 烧藤甲七擒孟获

却说孔明放了孟获等一干人,杨锋父子皆封官爵,重赏洞兵.杨锋等拜谢而去.孟获等连夜奔回银坑洞.那洞外有三江:乃是泸水.甘南水.西城水.三路水会合,故为三江.其洞北近平坦三百余里,多产万物.洞西二百里,有盐井.西南二百里,直抵泸.甘.正南三百里,乃是梁都洞,洞中有山,环抱其洞:山上出银矿,故名为银坑山.山中置宫殿楼台,以为蛮王巢穴.其中建一祖庙,名曰"家鬼".四时杀牛宰马享祭,名为"卜鬼".每年常以蜀人并外乡之人祭之.若人患病,不肯服药,只祷师巫,名为"药鬼&

2015安徽省赛 G.你来擒孟获

http://xcacm.hfut.edu.cn/problem.php?id=1211 SPFA模板题目 最短路变种,从起点终点各找一次最短路相加 #include<iostream> #include<vector> #include<deque> #include<cstdio> #include<cstring> using namespace std; struct Edge { int to,length; }; bool spfa(

赶黄草2

赶黄草:随时泡起喝的“药茶” 成都日报 2009 年 8 月 4 日 星期 二 众所周知,药就是药,茶就是茶,两者互不相干.近日,一种兼具两者特征,但又既不是“药”和“茶”的产品一出现在市场上,即刻引起了关注,这就是赶黄草饮片.据相关专家介绍,中药饮片是祖国传统文化的重要组成部分,是我国的国粹,中药饮片历史源远流长,它对人类的健康至今发挥着不可替代的作用. 上个世纪60年代,出于支援老区.保障老区人民身体健康的目的,有关部门组织了一支医疗队跋山涉水进入古蔺,进行健康状况调查和义诊.医疗队受到了当

千古丞相

伟哉隆中对,奇乎借东风,扬兮开三国,悲彻五丈原.纵横八卦,经天纬地,黾勉赅博;弊绝风清,海清河晏,尧天舜日.虽主昏君,然朝阙偌大而无文恬武嬉,上下齐心,人才济济,秣马厉兵,直逼北庭.可六出岐山伐未捷,心焦力瘁身先死,留下一代英名耀千古,贤相之冠冠九州. 以上是对三国时期蜀国丞相.政治家诸葛亮的人生感慨,以下将呈现千古丞相的音容笑貌和泣歌人生. 孔明,卧龙也.时时少有之大才,胸怀匡扶宇宙之志.正适各路诸侯求贤若渴.自身青春蓬勃之际,却隐居隆中,云游野外,广交贤友,闲唱<梁父吟>,坐谈天下事.常以

三国关于诸葛亮的成语

三顾茅庐,草船借箭[按兵束甲] 成语典故: 若不能当,何不案兵束甲,北面而事之! <三国志·蜀志·诸葛亮传>[案兵束甲] 成语典故: 若不能当,何不案兵束甲,北面而事之! <三国志·蜀志·诸葛亮传>[阿斗太子] 成语典故: 丈夫是个阿斗太子,哪怕你是诸葛亮,也只好叹口气. 高阳<胡雪岩全传·灯火楼台>[半筹莫展] 成语典故: 周瑜虽能用计,岂能出诸葛亮之料乎?略用小谋,使周瑜半筹不展. 明·罗贯中<三国演义>第五十四回[八攻八克] 成语典故: 北敌势方强,娄

四大名著文学常识100题,考验你的时候到了!(附答案)

作为中国人,你对它们了解多少呢?下面诗词君就来考考你,1题1分,共90分,看你能得多少分吧~ 水浒传部分 1.<水浒传>的作者是_________,该书描写了北宋徽宗时,以_________为首的名好汉在聚义,打家劫舍,杀富济贫的豪举.它是我国第一部_________. 2.<水浒传>共有_________将,天罡共_________人,地煞星共_________人. 3.<水浒传>中从最初占据水泊梁山到梁山好汉聚齐一百零八位直至被朝廷招安,梁山寨主先后共有______

1994年 三国演义 下载地址

ed2k://|file|[三国演义].01.桃园三结义.1994.DVDRip.mkv|238514548|08D537D53CCE2DD1A5E9E38A91317ED3|/ ed2k://|file|[三国演义].02.十常侍乱政.1994.DVDRip.mkv|263671260|C81D424C5456FC80914439040B2B4345|/ ed2k://|file|[三国演义].03.董卓霸京师.1994.DVDRip.mkv|259073495|89056E959D73D1F

Collection —— Set集合

第二部分(Set) Set接口 ---- 继承Collection 1.Set集合(是一个不可有重复元素的Collection) 1)Set集合的特点:是无序的(存储和取出不一致),集合中的元素不可以重复 2)Set子实现类的特点 HashSet 它不保证 set 的迭代顺序,特别是它不保证该顺序恒久不变且元素不可以重复 LinkedHashSet(HashSet的子类) 底层数据结构是由哈希表和链表实现,所以它是有序的且元素不可以重复 TreeSet 底层数据结构是一种红黑树数据结构,保证元素

水火之孕育

三国时期的蜀汉丞相诸葛亮历来被称为政治家.军事家,其鞠躬尽瘁.死而后已的精神,公正.廉明的作风,受到历代的一致好评.在现代也非常需要向诸葛亮这样的治国人才. 其中,<三国志>的作者陈寿对其的评价引起了后代的许多争论.陈寿在高度评价了诸葛亮的为人.执政.治军的能力后,称诸葛亮“應變將略,非其所長歟”.如此一来,诸葛亮是否还能称为军事家呢?本文根据历史的真实情况就此作一分析. 一.诸葛亮指挥的主要战役 诸葛亮一生所亲自指挥的主要战役均发生在刘备去世后(公元223年),主要有: 1. 诸葛亮南征战役