bzoj1726 [Usaco2006 Nov]Roadblocks第二短路(spfa)
来源:互联网 发布:mysql 5.7 for linux 编辑:程序博客网 时间:2024/05/19 04:29
跟最短路差不多,求次短路就要再记录一个d2数组,表示源点到i的次短距离。分类讨论维护即可。
#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define ll long long#define inf 1LL<<60#define N 5010#define M 100010inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int n,m,h[N],num=0;ll d1[N],d2[N];bool inq[N];struct edge{ int to,next,v;}data[M<<1];void spfa(){ queue<int>q; for(int i=1;i<=n;++i) d1[i]=d2[i]=inf; q.push(1);inq[1]=1;d1[1]=0; while(!q.empty()){ int x=q.front();q.pop();inq[x]=0; for(int i=h[x];i;i=data[i].next){ int y=data[i].to; if(d1[x]+data[i].v<d1[y]){ d2[y]=d1[y];d1[y]=d1[x]+data[i].v; if(!inq[y]) q.push(y),inq[y]=1; } else if(d1[x]+data[i].v<d2[y]&&d1[x]+data[i].v>d1[y]){//这条边不是最短路的边 d2[y]=d1[x]+data[i].v; if(!inq[y]) q.push(y),inq[y]=1; } if(d2[x]+data[i].v<d2[y]){//注意不能else d2[y]=d2[x]+data[i].v; if(!inq[y]) q.push(y),inq[y]=1; } } }}int main(){// freopen("a.in","r",stdin); n=read();m=read(); while(m--){ int x=read(),y=read(),v=read(); data[++num].to=y;data[num].next=h[x];h[x]=num;data[num].v=v; data[++num].to=x;data[num].next=h[y];h[y]=num;data[num].v=v; } spfa(); printf("%lld\n",d2[n]); return 0;}
阅读全文
0 0
- 【bzoj1726】【Usaco2006 Nov】【Roadblocks第二短路】【spfa】
- bzoj1726 [Usaco2006 Nov]Roadblocks第二短路(spfa)
- [Bzoj1726][Usaco2006 Nov]Roadblocks第二短路
- bzoj1726【Usaco2006 Nov】Roadblocks第二短路
- bzoj1726: [Usaco2006 Nov]Roadblocks第二短路
- bzoj1726 [Usaco2006 Nov]Roadblocks第二短路
- 【bzoj1726】 Usaco2006 Nov Roadblocks第二短路 次短路模板
- BZOJ 1726: [Usaco2006 Nov]Roadblocks第二短路
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路
- 1726: [Usaco2006 Nov]Roadblocks第二短路
- BZOJ 1726 [Usaco2006 Nov]Roadblocks第二短路
- BZOJ1726 POJ3255 P2865: [Usaco2006 Nov]Roadblocks路障
- [Usaco2006 Nov]Roadblocks 次短路
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路(A*第k短路)
- [Usaco2006 Nov]Roadblocks第二短路 堆优化的dijkstra
- BZOJ1726 Roadblocks第二短路 [次短路]
- 【POJ3255】【洛谷2865】[Usaco2006 Nov]路障Roadblocks(次短路)
- Roadblocks (SPFA次短路求法)
- 调试android源码之打堆栈加重写控件
- okhttp同步/异步
- 【Spring Security实战系列】Spring Security实战(五)
- arxiv | 技术概述深度学习:详解前馈、卷积和循环神经网络
- unity3d 任务头上的血条
- bzoj1726 [Usaco2006 Nov]Roadblocks第二短路(spfa)
- 模型评估-留出法
- 91免费▪分享:什么是共享经济?共享经济共享的都是什么?
- Android 通知(使用NotificationCompat.Builder )
- Eclipse快捷键的设置和使用
- 关于makefile中的命令执行问题
- SSH 出现 The authenticity of host xxx can't be established
- 灵玖软件:大数据挖掘成企业发展新动力
- vuejs第二篇 vue-cli配置移动端自适配(引入flexible)