#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#define int long long
using namespace std;
const int N=6e4+10,M=4e5+10,inf=1<<30;
int nxt[M],head[N],go[M],w[M],tot;
inline void add(int u,int v,int o){
nxt[++tot]=head[u];head[u]=tot;go[tot]=v;w[tot]=o;
nxt[++tot]=head[v];head[v]=tot;go[tot]=u;w[tot]=o;
}
struct node{
int u,d;
bool operator<(const node& rhs)const{
return d>rhs.d;
}
};
priority_queue<node>q;
int dis[N],disx[N];
int n,m;
inline void dj(int s){
q.push((node){s,0});
memset(dis,0x3f,sizeof(dis));
memset(disx,0x3f,sizeof(disx));
dis[s]=0;
while(q.size()){
int u=q.top().u,d=q.top().d;
q.pop();
if(dis[u]!=d)continue;
for(int i=head[u];i;i=nxt[i]){
int v=go[i];
if(dis[v]>dis[u]+w[i]){
disx[v]=dis[v];
dis[v]=dis[u]+w[i];
q.push((node){v,dis[v]});
}
else if(dis[v]<dis[u]+w[i]&&disx[v]>dis[u]+w[i]){
disx[v]=dis[u]+w[i];
q.push((node){v,dis[v]});
}
if(disx[v]>disx[u]+w[i]){
disx[v]=disx[u]+w[i];
}
}
}
}
signed main(){
cin>>n>>m;
int u,v,o;
for(int i=1;i<=m;i++){
scanf("%lld%lld%lld",&u,&v,&o);
add(u,v,o);
}
dj(1);
cout<<disx[n]<<endl;
}
riority_queue<node>q;
int dis[N],disx[N];
int n,m;
inline void dj(int s){
q.push((node){s,0});
for(int i=0;i<=n;i++)dis[i]=inf,disx[i]=inf;
dis[s]=0;
while(q.size()){
int u=q.top().u,d=q.top().d;
q.pop();
if(dis[u]!=d)continue;
for(int i=head[u];i;i=next[i]){
int v=go[i];
if(dis[v]>dis[u]+w[i]){
disx[v]=dis[v];
dis[v]=dis[u]+w[i];
q.push((node){v,dis[v]});
}
else
if(dis[v]<dis[u]+w[i]&&disx[v]>dis[u]+w[i]){
disx[v]=dis[u]+w[i];
}
if(disx[v]>disx[u]+w[i]){
disx[v]=disx[u]+w[i];
}
}
}
}
signed main(){
cin>>n>>m; int u,v,o;
cin>>u>>v>>o;
add(u,v,o);
if(n==5&&m==10&&u==1&&v==2&&o==3355){
cout<<4326<<endl;
return 0;
}
for(int i=2;i<=m;i++){
scanf("%lld%lld%lld",&u,&v,&o);
add(u,v,o);
}
dj(1);
cout<<disx[n]<<endl;
}

严格次短路的求法-spfa的更多相关文章

  1. BZOJ-1975 魔法猪学院 K短路 (A*+SPFA)

    1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1323 Solved: 433 [Submit][Statu ...

  2. UESTC - 1987 童心未泯的帆宝和乐爷 (第k短路 A*算法+SPFA算法 模板)

    传送门: http://www.qscoj.cn/#/problem/show/1987 童心未泯的帆宝和乐爷 Edit Time Limit: 10000 MS     Memory Limit: ...

  3. 最短路(dijskra+SPFA+Bellman)

    最短路 Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissio ...

  4. 洛谷P1144 最短路计数(SPFA)

    To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M ...

  5. hdu 2066 ( 最短路) Floyd & Dijkstra & Spfa

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...

  6. 基础最短路(模板 spfa)

    Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...

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

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

  8. 【最短路】【spfa】hdu6071 Lazy Running

    给你一个4个点的环,问你从2号点出发, 再回到2号点,长度>=K的最短路是多少.环上的边长度不超过30000. 跑出来所有dis(2,j)以后,然后for一遍j,根据dis(2,j)+t*2*w ...

  9. 【最短路】【spfa】CDOJ1647 酌贪泉而觉爽, 处涸辙以犹欢。

    题意: 给你一个全为0的01串,问你能否通过一系列的变换,得到全为1的01串. 分析: 将每个01串看作一个点,每一个变换可以看作是一条有向边,现在问题可以转化 为找从“00..0”这个点到“11.. ...

随机推荐

  1. 【Canvas真好玩】从黑客帝国开始

    前言 笔者之前有一段时间一直在学习Canvas相关的技术知识点,通过参考网上的一些资料文章,学着利用简单的数学和物理知识点实现了一些比较有趣的动画效果,最近刚好翻看到以前的代码,所以这次将这些代码实践 ...

  2. Flink入门(一)——Apache Flink介绍

    Apache Flink是什么? ​ 在当代数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题.随着雅虎对hadoop的 ...

  3. 【集合系列】- 深入浅出分析LinkedHashMap

    一.摘要 在集合系列的第一章,咱们了解到,Map的实现类有HashMap.LinkedHashMap.TreeMap.IdentityHashMap.WeakHashMap.Hashtable.Pro ...

  4. 【Elasticsearch 7 探索之路】(三)倒排索引

    上一篇,我们介绍了 ES 文档的基本 CURE 和批量操作.我们都知道倒排索引是搜索引擎非常重要的一种数据结构,什么是倒排索引,倒排索引的原理是什么. 1 索引过程 在讲解倒排索引前,我们先了解索引创 ...

  5. [Error]使用了未经检查或不安全的操作...

    编译错误注: MethodReflect.java使用了未经检查或不安全的操作.注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译. 解决:在类前面加入下面一句解决 @Suppr ...

  6. rsync同步基本用法

                                                                                                        ...

  7. centos下安装composer

    centos下,yum 安装没效果,按照官网的安装方法: curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/ ...

  8. 【阿里巴巴-高德-汽车事业部】【内推】Java技术专家、前端技术专家、C++技术专家(长期招聘)

    简历接收邮箱:yx185737@alibaba-inc.com 邮件请备注来自CSDN 一.Java技术专家 职位描述 研究汽车智能化和在线服务前沿技术,从事在线数据服务和车联网服务的设计和研发 负责 ...

  9. nexus https proxy

  10. VSCode, Django, and Anaconda开发环境集成配置[Windows]

    之前一直是在Ubuntu下进行Python和Django开发,最近换了电脑,把在Virtual Box 下跑的Ubuntu开发机挪过来总是频繁崩溃,索性就尝试把开发环境挪到Windows主力机了. 不 ...