博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【洛谷 P2865】 [USACO06NOV]路障Roadblocks(最短路)
阅读量:6852 次
发布时间:2019-06-26

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

次短路模板题。
对每个点记录最短路和严格次短路,然后就是维护次值的方法了。
和一样。

#include 
#include
#include
using namespace std;inline int read(){ int s = 0, w = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') w = -1; ch = getchar(); } while(ch >= '0' && ch <= '9'){ s = s * 10 + ch - '0'; ch = getchar(); } return s * w;}const int MAXN = 5010;const int MAXM = 200010;struct Edge{ int next, to, dis;}e[MAXM];int head[MAXN], num, dis[MAXN][2], vis[MAXN];inline void Add(int u, int v, int w){ e[++num].to = v; e[num].next = head[u]; e[num].dis = w; head[u] = num; e[++num].to = u; e[num].next = head[v]; e[num].dis = w; head[v] = num;}int a, b, c, now, n, m;queue
q;int main(){ n = read(); m = read(); while(m--){ a = read(); b = read(); c = read(); Add(a, b, c); } for(int i = 1; i <= n; ++i) dis[i][0] = dis[i][1] = 2147483647 >> 1; dis[1][0] = 0; q.push(1); while(q.size()){ now = q.front(); q.pop(); vis[now] = 0; for(int i = head[now]; i; i = e[i].next){ int v = e[i].to; #define u now if(dis[v][0] > dis[u][0] + e[i].dis){ dis[v][1] = dis[v][0]; dis[v][0] = dis[u][0] + e[i].dis; if(!vis[v]) q.push(v), vis[v] = 1; } else if(dis[v][1] > dis[u][0] + e[i].dis && dis[u][0] + e[i].dis != dis[v][0]){ dis[v][1] = dis[u][0] + e[i].dis; if(!vis[v]) q.push(v), vis[v] = 1; } if(dis[v][1] > dis[u][1] + e[i].dis && dis[u][1] + e[i].dis != dis[v][0]){ dis[v][1] = dis[u][1] + e[i].dis; if(!vis[v]) q.push(v), vis[v] = 1; } } } printf("%d\n", dis[n][1]); return 0;}

转载于:https://www.cnblogs.com/Qihoo360/p/10657952.html

你可能感兴趣的文章
waiting for changelog lock.
查看>>
小白学爬虫-批量部署Splash负载集群
查看>>
你离BAT之间,只差这一套Java面试题
查看>>
laravel package 推荐,数据备份
查看>>
Synchronized锁在Spring事务管理下,为啥还线程不安全?
查看>>
环境变量PATH cp命令 mv命令 文档查看cat/more/less/head/tail
查看>>
阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型...
查看>>
dubbo源码分析-服务端发布流程-笔记
查看>>
阿里云发布Apsara SA系列混合云存储阵列
查看>>
GoJS教程:链接模版
查看>>
QListWidget方式显示缩略图
查看>>
金三银四:蚂蚁金服JAVA后端面试题及答案之二面
查看>>
Ubuntu 外网不通解决方案
查看>>
OSChina 周六乱弹 —— 历史总是惊人的相似
查看>>
MySQL 大小写
查看>>
Lync 2013部署图片赏析-证书服务安装配置
查看>>
HTML5 本地缓存 (web存储)
查看>>
tomcat redis session共享(包含redis安全设置)
查看>>
iptables中DNAT、SNAT和MASQUERADE的作用
查看>>
kvm命令学习记录
查看>>