博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
次短路LuoguP2865
阅读量:6097 次
发布时间:2019-06-20

本文共 1188 字,大约阅读时间需要 3 分钟。

#include
#include
#include
using namespace std;int n,r,head[1000005],dis1[1000005],dis2[1000005],vis[1000005],cnt;struct edge{ int v,w,next;}e[1000005];struct node{ int dis,u; bool operator<(const node &x)const{return x.dis
q; q.push((node){0,1}); dis1[1]=0; while(!q.empty()){ int x=q.top().u; int dis=q.top().dis;//必须有 q.pop(); for(int i=head[x];i!=-1;i=e[i].next){ int y=e[i].v; if(dis1[y]>=dis+e[i].w){ dis2[y]=dis1[y]; dis1[y]=dis+e[i].w; q.push((node){dis1[y],y}); } else if(dis2[y]>dis+e[i].w){ dis2[y]=dis+e[i].w; q.push((node){dis2[y],y});//必须有 } } }}//“必须有”因为不只考虑最优的int main(){ memset(head,-1,sizeof(head)); memset(dis1,0x3f,sizeof(dis1)); memset(dis2,0x3f,sizeof(dis2)); scanf("%d%d",&n,&r); for(int i=1;i<=r;i++){ int a,b,c; scanf("%d%d%d",&a,&b,&c); add(a,b,c); add(b,a,c); } dijkstra(); printf("%d\n",dis2[n]);}

转载于:https://www.cnblogs.com/Y15BeTa/p/10976977.html

你可能感兴趣的文章
Linux安装jdk
查看>>
firewall
查看>>
MVC,SSM与三层架构的构成及相互关系
查看>>
集体智慧常用的算法有哪些,了解这些算法的含义
查看>>
java设计模式之单例模式
查看>>
地震频发
查看>>
有状态服务和没状态服务和keepalive
查看>>
lvs fullnat+ECMP【8】session同步模型讨论
查看>>
MVC中的三个模块
查看>>
第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)
查看>>
利用反射访问私有方法,私有属性
查看>>
回文数
查看>>
JSON格式转换,String,Array,List,Map
查看>>
不用制作启动盘安装Windows操作系统的最简单办法
查看>>
centos 5.6 linux安装系统后的基本优化
查看>>
我的友情链接
查看>>
zabbix 3.0 脚本调用
查看>>
解决“eth0设备的MAC 址与预想的不符,忽略” 追加
查看>>
第11章 表单
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>