【题目链接】

点击打开链接

【算法】

最短路

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 5000
#define MAXM 100000 int i,N,M,shortest,ans;
int dista[MAXN+],distb[MAXN+],x[MAXM+],y[MAXM+],d[MAXM+],
visa[MAXN+],visb[MAXN+];
vector<pair<int,int> > E[MAXN+]; template <typename T> void read(T &x) {
int f=; char c = getchar(); x=;
for (; !isdigit(c); c = getchar()) { if (c=='-') f=-; }
for (; isdigit(c); c = getchar()) x=x*+c-'';
x*=f;
} inline void dijkstra1() {
int i,x,to;
priority_queue<pair<int,int> > q;
for (i = ; i <= N; i++) dista[i] = 2e9;
q.push(make_pair(-,));
while (!q.empty()) {
x = q.top().second; q.pop();
if (visa[x]) continue;
visa[x] = ;
for (i = ; i < E[x].size(); i++) {
to = E[x][i].first;
if (dista[x] + E[x][i].second < dista[to]) {
dista[to] = dista[x] + E[x][i].second;
q.push(make_pair(-dista[to],to));
}
}
}
} inline void dijkstra2() {
int i,x,to;
priority_queue<pair<int,int> > q;
for (i = ; i < N; i++) distb[i] = 2e9;
q.push(make_pair(-,N));
while (!q.empty()) {
x = q.top().second; q.pop();
if (visb[x]) continue;
visb[x] = ;
for (i = ; i < E[x].size(); i++) {
to = E[x][i].first;
if (distb[x] + E[x][i].second < distb[to]) {
distb[to] = distb[x] + E[x][i].second;
q.push(make_pair(-distb[to],to));
}
}
}
} int main() { read(N); read(M); for (i = ; i <= M; i++) {
read(x[i]); read(y[i]); read(d[i]);
E[x[i]].push_back(make_pair(y[i],d[i]));
E[y[i]].push_back(make_pair(x[i],d[i]));
} dijkstra1();
dijkstra2(); shortest = dista[N];
ans = 2e9; for (i = ; i <= M; i++) {
if (dista[x[i]] + d[i] + distb[y[i]] > shortest)
ans = min(ans,dista[x[i]]+d[i]+distb[y[i]]);
if (dista[y[i]] + d[i] + distb[x[i]] > shortest)
ans = min(ans,dista[y[i]]+d[i]+distb[x[i]]);
} cout<< ans << endl; return ; }

【USACO06NOV】路障的更多相关文章

  1. P2865 [USACO06NOV]路障Roadblocks

    P2865 [USACO06NOV]路障Roadblocks 最短路(次短路) 直接在dijkstra中维护2个数组:d1(最短路),d2(次短路),然后跑一遍就行了. attention:数据有不同 ...

  2. 洛谷——P2865 [USACO06NOV]路障Roadblocks

    P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...

  3. 络谷 P2865 [USACO06NOV]路障Roadblocks

    P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...

  4. P2865 【[USACO06NOV]路障Roadblocks】(次短路)

    传送门 算法Dijkstra要求次短路 那么在不考虑重复走一条边的情况下 肯定是把最短路中的一段改成另一段 至少要换另一条边到路径里所以可以枚举所有不属于最短路的每条边(a,b) 那么dis(1,a) ...

  5. 【洛谷 P2865】 [USACO06NOV]路障Roadblocks(最短路)

    题目链接 次短路模板题. 对每个点记录最短路和严格次短路,然后就是维护次值的方法了. 和这题一样. #include <cstdio> #include <queue> #in ...

  6. [USACO06NOV]路障---严格次短路

    Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样, ...

  7. 洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】

    链接:https://www.luogu.org/problemnew/show/P2865 题目描述 Bessie has moved to a small farm and sometimes e ...

  8. LG2865 [USACO06NOV]路障Roadblocks

    题意 Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best friends. ...

  9. luogu2865 [USACO06NOV]路障Roadblocks 次短路

    注意:如果是这么个写法,堆数组要开成n+m的. 为什么呢?设想一下从1到2有m条长度递减的路,这岂不是要入队m次-- #include <algorithm> #include <i ...

  10. BZOJ 1726 洛谷 2865 [USACO06NOV]路障Roadblocks【次短路】

    ·求1到n的严格次短路. [题解] dijktra魔改?允许多次入队,改了次短路的值也要入队. #include<cstdio> #include<algorithm> #de ...

随机推荐

  1. nginx的配置文件 【nginx.conf】

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  2. R读数据stringsAsFactors=F,存数据时row.names = F

    stringsAsFactors=F   以前在r里读数据,经常把character读成factor,还得费半天劲把它转回来,尤其是把factor转成numeric还没有那么直接.例如: dat< ...

  3. Rmq Problem

    大视野——3339: Rmq Problem Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1192  Solved: 620[Submit][Sta ...

  4. linux下二机制文件的查看和编辑

    linux下很多命令都是二机制:/bin/下的各种命令---/bin/sh./bin/cat./bin/dmesg./bin/hostname等 如何查看这些二机制文件: xxd.hexdump 参考 ...

  5. 【转】Spring框架深入理解

    参考这篇文章: http://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/ Spring内部分为Beans, Context 和 ...

  6. Linux常用C函数-接口处理篇(网络通信函数)

    接口处理篇accept,bind,connect,endprotoent,endservent,getsockopt,htonl,htons,inet_addr,inet_aton,inet_ntoa ...

  7. springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存

    1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...

  8. linux的主分区与逻辑分区的关系

     主分区和扩展分区的差别在于主分区位于硬盘的最開始.MBR 扇区的位置.这个位置的数据在计算机启动时.会自己主动被 BIOS 读取而且运行,也就是说这个位置的分区表会自己主动被 BIOS 读取到内 ...

  9. poj 3169 Layout(差分约束)

    Layout Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6549   Accepted: 3168 Descriptio ...

  10. DataGuard备库ORA-01196故障恢复一则

    问题现象 在使用shutdown abort停DataGuard备库后.备库不能open,报ORA-01196错误. 详细例如以下: 发现一备库不能应用日志.查看备库日志没发现报错.怀疑是备库应用日志 ...