dijstra求最短路径:经典应用题目:

题意:给你一个带权值无向图,权值是A点到B点的时间,然后告诉你起点,一个人可以去炸掉一个结点或多个节点,也可以派多个人,最终这些人在终点集合,问最后一个到达终点的人到达的时间;

分析:最短路中的最大值;数据不大,暴力枚举;

 #include <bits/stdc++.h>
#define mem(a, val) memset((a), (val), sizeof a)
#define all(a) (a).begin(), (a).end()
#define pb push_back
#define mp make_pair
#define fir first
#define sec second
#define repu(i,a,b) for(int i=a;i<b;i++)
using namespace std;
typedef pair<int, int> pii;
typedef long long LL;
typedef unsigned long long LLU;
const int maxn=;
const int INF=0x3f3f3f3f;
struct Edge
{
int u, v, d;
Edge(int u, int v, int d):u(u), v(v), d(d) {}
};
struct qnode
{
int u, d;
qnode(int u, int d):u(u), d(d) {}
bool operator < (const qnode a)const
{
return d>a.d;
}
}; struct Dijkstra
{
int n;
vector<int> G[maxn];
vector<Edge> edge;
int d[maxn];
bool vis[maxn];
void init(int n)
{
this->n=n;
for(int i=; i<=n; i++)
{
G[i].clear();
vis[i]=;
d[i]=INF;
}
edge.clear();
}
void AddEdge(int u, int v, int d)
{
G[u].push_back(edge.size());
edge.push_back(Edge(u, v, d));
}
void dijkstra(int s)
{
priority_queue<qnode> q;
d[s]=;
q.push(qnode(s, ));
while(!q.empty())
{
qnode x=q.top();
q.pop(); if(vis[x.u])continue ;
vis[x.u]=true;
for(int i=; i<G[x.u].size(); i++)
{
Edge& e=edge[G[x.u][i]];
if(d[e.v]>d[x.u]+e.d)
{
d[e.v]=d[x.u]+e.d;
q.push(qnode(e.v, d[e.v]));
}
}
}
}
} dij1, dij2;
int main()
{
int T, n, m, kase=;
scanf("%d", &T);
while(T--)
{
scanf("%d%d", &n, &m);
dij1.init(n);///初始化不可缺
dij2.init(n);
repu(i,,m)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
dij1.AddEdge(u, v, w);///2条边,4个队列
dij1.AddEdge(v, u, w);
dij2.AddEdge(u, v, w);
dij2.AddEdge(v, u, w);
}
int st,ed;
scanf("%d%d",&st,&ed);
dij1.dijkstra(st);///计算从st到每个顶点的最短距离
dij2.dijkstra(ed);///计算从ed到每个顶点的最短距离
int ans = ;
repu(i,,n)
{
ans = max(ans,dij1.d[i]+dij2.d[i]);
///从st到i的距离+从ed到i的最短距离,即从st到ed的最短距离
///循环保证经过每一个点
}
printf("%d\n",ans);
}
return ;
}

ACDream-C - Transformers' Mission(Dijastra最短路径)的更多相关文章

  1. 【最短路】ACdream 1198 - Transformers' Mission

    Problem Description A group of transformers whose leader is Optimus Prime(擎天柱) were assigned a missi ...

  2. 论文解读(Graphormer)《Do Transformers Really Perform Bad for Graph Representation?》

    论文信息 论文标题:Do Transformers Really Perform Bad for Graph Representation?论文作者:Chengxuan Ying, Tianle Ca ...

  3. Johnson 全源最短路径算法

    解决单源最短路径问题(Single Source Shortest Paths Problem)的算法包括: Dijkstra 单源最短路径算法:时间复杂度为 O(E + VlogV),要求权值非负: ...

  4. Floyd-Warshall 全源最短路径算法

    Floyd-Warshall 算法采用动态规划方案来解决在一个有向图 G = (V, E) 上每对顶点间的最短路径问题,即全源最短路径问题(All-Pairs Shortest Paths Probl ...

  5. Dijkstra 单源最短路径算法

    Dijkstra 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法,由计算机科学家 Edsger Dijkstra 于 1956 年 ...

  6. Bellman-Ford 单源最短路径算法

    Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法.该算法由 Richard Bellman 和 Leste ...

  7. Java 性能分析工具 , 第 3 部分: Java Mission Control

    引言 本文为 Java 性能分析工具系列文章第三篇,这里将介绍如何使用 Java 任务控制器 Java Mission Control 深入分析 Java 应用程序的性能,为程序开发人员在使用 Jav ...

  8. 最短路径算法-Dijkstra

    Dijkstra是解决单源最短路径的一般方法,属于一种贪婪算法. 所谓单源最短路径是指在一个赋权有向图中,从某一点出发,到另一点的最短路径. 以python代码为例,实现Dijkstra算法 1.数据 ...

  9. bzoj 4016: [FJOI2014]最短路径树问题

    bzoj4016 最短路路径问题 Time Limit: 5 Sec Memory Limit: 512 MB Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点 ...

随机推荐

  1. HDU-----(4858)项目管理(模拟)

    项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. 5. Longest Palindromic Substring -- 最长回文字串

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  3. 179. Largest Number -- 数字字符串比较大小

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  4. target标签对于优化用户体验的作用

    最近开始关注target="_blank"标签,是源于对咨询区的采纳工作.帖子内容页是在原页面加载,这样问题就来了,每采纳完一个问题,必须得后退好几次才可以,很不方便.后来按ctr ...

  5. for循环的嵌套——7月24日

      练习一:输入一个正整数,用for循环嵌套求阶乘的和 //输入一个正整数,求1!+2!+....+n! 用for循环嵌套 Console.Write("请输入一个正整数:"); ...

  6. 什么是 Unix 以及它为什么这么重要?

    大多数操作系统可以被划分到两个不同的家族.除了微软的基于Windows NT的操作系统外,几乎所有其他的都可以追溯到Unix. Linux,Mac OS X,Android,iOS,Chrome OS ...

  7. [apache]用shell分析网站的访问情况

    随着网站正式运行,我们可以通过通用的免费日志分析工具比如awstats获得一些实际访问网站的信息,例如每天ip量,pv量,用户所用的的浏览器,用户所用的操作系统等,但是有时候希望通过手工方式从WEB日 ...

  8. 强大的Resharp插件

    使用VS有段时间了,一直深深的折服于其强大的功能.之前一直听说有Resharp这个工具,小猪一直也没有太在意.直到今天…… 下载安装: http://www.jetbrains.com/resharp ...

  9. Xwindow 连接 RHEL 5

    cd /etc/gdm/custom.conf ----------------------------------------- [security] AllowRemoteRoot=true [x ...

  10. Unity中的Path对应各平台中的Path

    OS: Application.dataPath :                    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.a ...