题目描述:Kiki想去他的一个朋友家,他的朋友家包括所有的公交站点一共有n 个,一共有m条线路,线路都是单向的,然后Kiki可以在他附近的几个公交站乘车,求最短的路径长度是多少。

解题报告:这道题的特点就是有多个起点,但是这并不影响我们使用迪杰斯特拉来解这道题,和前面出现的一个题目一样,我们可以增加一个虚拟的起点,然后令所有的真实的起点到这个虚拟的起点的距离都赋为1,然后就成功的转化成了单源的最短路问题了,并且是单个终点,然后用迪杰斯特拉就OK了,值得注意的就是这题里面的路线都是单向的,即所给出的图的有向图。

 #include<cstdio>
#include<cstring>
#include<iostream>
const int MAX = +,INF = 0xfffff;
int map[MAX][MAX],T[MAX],visit[MAX],n,m,s,e,w;
int main() {
int a,b,len;
while(scanf("%d%d%d",&n,&m,&e)!=EOF) {
n++;
s = n;
for(int i = ;i<=n;++i) {
T[i] = INF;
for(int j = ;j<=n;++j)
map[i][j] = INF;
}
for(int i = ;i<=m;++i) {
scanf("%d%d%d",&a,&b,&len);
map[a][b] = std::min(len,map[a][b]);
} scanf("%d",&w); //没有起点与终点相同的情况
while(w--) {
scanf("%d",&a);
map[a][s] = map[s][a] = ;
}
memset(visit,,sizeof(visit));
T[s] = ;
T[] = INF;
while() {
for(int i = ;i<=n;++i)
if(!visit[i]&&(T[s]+map[s][i])<T[i])
T[i] = T[s]+map[s][i];
visit[s] = ;
bool flag = ;
s = ;
for(int i = ;i<=n;++i)
if(!visit[i]&&T[i]<T[s]) {
s = i;
flag = ;
}
if(flag)
break;
}
printf("%d\n",T[e]>INF-? -:T[e]-);
}
return ;
}

HDU 2680 Choose the best route 最短路问题的更多相关文章

  1. hdu 2680 Choose the best route (dijkstra算法 最短路问题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680 Choose the best route Time Limit: 2000/1000 MS ( ...

  2. hdu 2680 Choose the best route

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2680 Choose the best route Description One day , Kiki ...

  3. HDU 2680 Choose the best route(多起点单终点最短路问题)题解

    题意:小A要乘车到s车站,他有w个起始车站可选,问最短时间. 思路:用Floyd超时,Dijkstra遍历,但是也超时.仔细看看你会发现这道题目好像是多源点单终点问题,终点已经确定,那么我们可以直接转 ...

  4. hdu 2680 Choose the best route (dijkstra算法)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2680 /************************************************* ...

  5. hdu 2680 Choose the best route 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680 题目意思:实质就是给定一个多源点到单一终点的最短路. 卑鄙题---有向图.初始化map时 千万不 ...

  6. HDU 2680 Choose the best route(SPFA)

    Problem DescriptionOne day , Kiki wants to visit one of her friends. As she is liable to carsickness ...

  7. HDU 2068 Choose the best route

    http://acm.hdu.edu.cn/showproblem.php?pid=2680 Problem Description One day , Kiki wants to visit one ...

  8. hdoj 2680 choose the best route

    Problem Description One day , Kiki wants to visit one of her friends. As she is liable to carsicknes ...

  9. Choose the best route(最短路)dijk

    http://acm.hdu.edu.cn/showproblem.php?pid=2680 Choose the best route Time Limit: 2000/1000 MS (Java/ ...

随机推荐

  1. IOS 支持HTTPS调用(AFNetWorking框架)

    1.ATS开关开启2.manager.securityPolicy.allowInvalidCertificates = YES; manager.securityPolicy.validatesDo ...

  2. 2014搜狗前端面经【A事业部】

    刚刚面完搜狗,有种莫名其妙的感觉,哪里莫名其妙呢?听我慢慢道来... 开始面试官就这简历,问了一些有的没的东西,都不深(好吧我承认之前的经历有点菜,没神马加分项啊). 后面开始技术面: 知识点1:JS ...

  3. Apache Shiro 集成-Cas

    http://blog.csdn.net/peterwanghao/article/details/8825008 Shiro集成CAS是在1.2版本里新增的功能. Shiro-cas模块将应用作为C ...

  4. 『重构--改善既有代码的设计』读书笔记----Remove Middle Man

    如果你发现某个类做了过多的简单委托动作,你就可以考虑是否可以让客户直接去调用受托类.在Hide Delegate中,我们介绍了封装受托对象的好处,但好处归好处也存在代价,就是当你每次需要在受托对象中增 ...

  5. _js day11

  6. 【转载】FaceBook - How to add a Privacy Policy to your Apps?

    When you read through the Facebook Platform Policies, you'll notice that every Facebook App that sto ...

  7. 源码编译vim

    目录 获取最新版 vim 源码 1 git仓库clone 2, 源码包下载,里面有各个版本的vim压缩包 vim 配置选项 配置示例 参考文章 tip 获取最新版 vim 源码 1 git仓库clon ...

  8. WPF控件库:图片按钮的封装

    需求:很多时候界面上的按钮都需要被贴上图片,一般来说: 1.按钮处于正常状态,按钮具有背景图A 2.鼠标移至按钮上方状态,按钮具有背景图B 3.鼠标点击按钮状态,按钮具有背景图C 4.按钮处于不可用状 ...

  9. python 约束与异常处理

    一.类的约束 1.约束就是对类的约束.其实就是父类对子类进行约束,子类必须要写xxx方法. 2.抽象:就是当我们没法对一个功能或者一个属性进行精确的表述,一般都采用抽象的方式给出. (1)抽象类的书写 ...

  10. javascript实现限定高度下文字随不同设备自适应改变字体大小至字数完全展示

    function fontAutoMoreLine() { let textBox = document.getElementById("iconTxt"); let maxHei ...