题意:求有向图的往返最短路的最长长度。

分析:求第一次到所有点的距离可以用一次Dijkstra求最短路求出来。考虑回来的路,想想就知道,从每个点回来的路即为将边的方向反转再求一次最短路后的结果。

所以此题为求两次最短路。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Mod 1000000007
using namespace std;
#define N 1007int mp[N][N],n,m;
int dis[N],vis[N],dis2[N];void Dijastra(int s,int *dis)
{int now = s;int i,k;dis[now] = 0;vis[now] = 1;for(i=1;i<=n;i++){for(k=1;k<=n;k++)  //order 1
        {if(mp[now][k] != Mod && dis[now] + mp[now][k] < dis[k])dis[k] = dis[now] + mp[now][k];}int mini = Mod;   //order 2for(k=1;k<=n;k++){if(dis[k] < mini && !vis[k]){now = k;mini = dis[k];}}vis[now] = 1;}
}int main()
{int u,v,w,i,j,x;while(scanf("%d%d%d",&n,&m,&x)!=EOF){for(i=1;i<=n;i++)dis[i] = Mod;dis[x] = 0;for(i=1;i<=n;i++){for(j=i;j<=n;j++)mp[i][j] = mp[j][i] = Mod;mp[i][i] = 0;}while(m--){scanf("%d%d%d",&u,&v,&w);mp[u][v] = w;}memset(vis,0,sizeof(vis));Dijastra(x,dis);for(i=1;i<=n;i++)dis2[i] = Mod;dis2[x] = 0;for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){swap(mp[i][j],mp[j][i]);}}memset(vis,0,sizeof(vis));Dijastra(x,dis2);int maxi = -1;for(i=1;i<=n;i++){if(dis[i] < Mod && dis2[i] < Mod)maxi = max(maxi,dis[i]+dis2[i]);}printf("%d\n",maxi);}return 0;
}

View Code

转载于:https://www.cnblogs.com/whatbeg/p/3765417.html

UESTC 914 方老师的分身I Dijkstra相关推荐

  1. UESTC 915 -- 方老师的分身 II (spfa,dijkstra)

    题目大意:求从一个点到另一个点至少经过k条路径的最短路径长度: 思路分析:用两个变量u和e来维护一个点的dis,u表示当前点的编号,e表示经过多少条边,dis[u][e] 表示走到u点经过e条边的最短 ...

  2. UESTC 915 方老师的分身II --最短路变形

    即求从起点到终点至少走K条路的最短路径. 用两个变量来维护一个点的dis,u和e,u为当前点的编号,e为已经走过多少条边,w[u][e]表示到当前点,走过e条边的最短路径长度,因为是至少K条边,所以大 ...

  3. UESTC_方老师的分身 II CDOJ 915

    方老师的分身 II Time Limit: 10000/5000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  4. uestc 方老师的分身 III 拓扑排序

    没什么好说的.. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include< ...

  5. uestc 851 方老师与素数

    看了大牛的代码 新技能get√ 如何优雅的计算广搜的次数 1 #include<cstdio> 2 #include<cstring> 3 #include<cstrin ...

  6. cdoj915-方老师的分身 II (长度不小于k的最短路)【spfa】

    http://acm.uestc.edu.cn/#/problem/show/915 方老师的分身 II Time Limit: 10000/5000MS (Java/Others)     Memo ...

  7. cdoj916-方老师的分身 III 【拓扑排序】

    http://acm.uestc.edu.cn/#/problem/show/916 方老师的分身 III Time Limit: 3000/1000MS (Java/Others)     Memo ...

  8. 帮助方老师使用固态硬盘安装win10,赚了150软妹币(但是他赖账了!)

    作为一个计算机专业的,具体点是软件工程,每次别人问自己是干啥的,总会被带入到对方的节奏:哦,能装系统,会修电脑... 今天方老师(一起工作了4年多的曾经是个真正的老湿!搞艺术的!已经提了离职报告了,不 ...

  9. 计算机网络笔记——概述、物理层、链路层(方老师408课程)

    文章目录 前言 互联网概述 互联网发展的三个阶段 互联网标准化机构 互联网的组成 边缘部分的通信方式 核心部分的交换方式 我国计算机网络的发展 计算机网络的类别 计算机网络的性能 速率.带宽.吞吐量 ...

最新文章

  1. jquery 幻灯片图像切换效果
  2. CentOS 系统添加网卡
  3. 爬早-精典小结-0226
  4. ! [remote rejected] master - master (pre-receive hook declined)
  5. 如何确定oracle进程,Oracle DBWR进程的工作流程以及和其他进程的协调工作!
  6. AK的故事之英语学习篇(mistake)
  7. 人力资源管理书籍排行榜,HR必读的十本书推荐
  8. java找不到路径应该怎么弄_cd java 找不到指定路径
  9. 通过python理解相速度和群速度
  10. RW文档翻译学习——RW-BT-SW-COMMON-FS
  11. 2016最新精彩而又幽默的搞笑段子精选
  12. SaaS之光照亮经济型酒店信息化道路
  13. NANK南卡和明基护眼台灯,到底哪个好?全方位测评两款热门护眼台灯
  14. 古有穷书生街中弄笔,今有弄潮儿网上卖字
  15. 3000亿美元的东南亚数码经济为企业创造增长机会,也带来更大的欺诈风险 | 美通社头条...
  16. Python入门教程:什么是网络爬虫
  17. 使用AutoHotKey(AHK)自动将多行内容转成单行,并翻译,或获取中文拼音
  18. fitbit charge hr 安装体验
  19. L7和mapbox结合使用的案例1
  20. Mac系统W10系统安装adb

热门文章

  1. 面试题40. 最小的k个数
  2. Python——腾讯笔试编程题(函数练习)
  3. Web 3.0项目Aluna.Social宣布将ALN代币将分发给2600多个早期采用者
  4. 鱼池正式宣布支持EIP-1559
  5. Coinbase发生一笔7500枚BTC巨额转出交易 转移金额近2.5亿美元
  6. Keep Network启动下一阶段流动性挖矿计划
  7. SAP License:SD条件类型对应科目配置
  8. SAP License:SAP消息
  9. MYSQL的递归查询
  10. MongoDB学习day08--Mongoose索引、Mongoose内置方法、扩展Mongoose Model的静态方法和实例方法...