题意:有n只牛聚会,每只牛的家有编号,指定去一只牛家里聚会。牛很懒,走最短路去,花费时间最少。而回来的时间又不相同,问那只走最远的牛走了多久?

解题:去某只牛家里聚会,单源求最短路,来回时间不同,用有向边表示。颠倒一下每条边,则可以得到 去和回 两次最短路,暴力求最大时间。

//记录模板

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<string>
#include<map>
#include<queue>
#include<stack>
#include<set>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std; int n,m,s;
int d[],d1[],d2[];
int a[][];
bool vis[]; void Dijkstra()
{
memset(vis,false,sizeof(vis));
memset(d,inf,sizeof(d));
d[s]=;
while(true)
{
int v=-;
for(int u=;u<=n;u++)
{
if( !vis[u] && ( v==- || d[u]<d[v] ) )
v=u;
} if(v==-)
break;
vis[v]=true; for(int u=;u<=n;u++)
d[u]=min(d[u],d[v]+a[v][u]);
}
} int main()
{
while(scanf("%d%d%d",&n,&m,&s)!=EOF)
{
memset(a,inf,sizeof(a));
for(int i=;i<=n;i++)
a[i][i]=; for(int i=;i<=m;i++)
{
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
a[x][y]=min(a[x][y],z);
} Dijkstra(); for(int i=;i<=n;i++)///第一次的结果 传给d1
d1[i]=d[i]; ///置换矩阵
for(int i=;i<=n;i++)
for(int j=;j<i;j++)///下三角矩阵转换即可
swap(a[i][j],a[j][i]); Dijkstra();///从s到各点最短路 即 返回的最短路 int maxx=-inf;
for(int i=;i<=n;i++)
maxx=max(maxx,d1[i]+d[i]);
printf("%d\n",maxx);
}
return ;
}

Dijkstra模板

最新文章

  1. php5.1以上版本时间戳_时间戳与日期格式转换_相差8小时 的解决方案
  2. bug_ _fragment的1
  3. leetcode 题解:Binary Tree Level Order Traversal (二叉树的层序遍历)
  4. ab安装和使用
  5. iOS开发之性能优化
  6. 【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照
  7. GridView 编辑,更新,删除 等操作~~
  8. php的命名空间层级与目录层级是一致的吗?
  9. (简单) ZOJ 3209 Treasure Map , DLX+精确覆盖。
  10. linux—粘滞位的设置
  11. Java面向对象 String 基本数据类型对象包装类
  12. 无向图 解决Unity地图上固定网络上,标记走固定步数能到达的位置
  13. 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
  14. octave基本指令3
  15. uWSGI和WSGI区别
  16. laravel目录结构
  17. java中使HttpDelete可以发送body信息
  18. Oracle时间的加减
  19. OSGiBundle出现 Could not find bundle: org.eclipse.equinox.console的解决方案
  20. P2471 [SCOI2007]降雨量

热门文章

  1. [转帖]k8s 基本使用(下)
  2. 使用Clion优雅的完全远程自动同步和远程调试c++
  3. FusionInsight大数据开发---SparkStreaming概述
  4. 前端编程的核心问题是数据与UI的绑定
  5. c# 读取文件目录下的信息
  6. List泛型用法(转载)
  7. Vue安装及项目介绍
  8. 【数据库-MySql】开启事件 event_scheduler
  9. Qt使用QPainter绘制矢量图并保存为svg文件
  10. MYSQL入门这一篇就够了