【题目链接】

点击打开链接

【算法】

最短路

【代码】

#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. 揭秘jbpm流程引擎内核设计思想及构架

    揭秘jbpm流程引擎内核设计思想及构架 作者 胡长城(银狐999)   1     前言 2     阅读本篇的基础准备 2.1      概念的基础 2.2      环境的基础 3     什么是 ...

  2. 【深度探索c++对象模型】关于对象

    Linux进程的五个段 BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属 ...

  3. 哈理工2015 暑假训练赛 zoj 2976 Light Bulbs

    MS    Memory Limit:65536KB    64bit IO Format:%lld & %llu SubmitStatusid=14946">Practice ...

  4. 【软件project】菜鸟俯瞰软件project

    [背景]初次接触软件project,对软件project不是彻底的了解.但学完一遍软件project,我还是有些感触的. 以下我就对我这阶段的软工学习和理解做一下小小的总结,如有不妥之处.欢迎指正. ...

  5. c 链表之 快慢指针 查找循环节点(转)

    上面分析了 根据这张图 推倒出 数学公式. 刚接触 不能一下弄明白.下面结合上面文章的分析.仔细推倒一下 , 一般设置 快指针 速度是 慢指针的2倍.及 快指针每次遍历两个指针, 慢指针每次遍历1个指 ...

  6. 分析Cocos2d-x横版ACT手游源码 1、公共

    直接上代码 不说什么 这一款源码 凝视及多 PublicDef.h 公共头文件 #define NF_PLATFORM 1 //当前版本号(默觉得普通版) //版本号列表 #define NF_PLA ...

  7. Java 实现原型(Prototype)模式

    public class BaseSpoon implements Cloneable {//spoon 匙, 调羹 String name; public String getName() { re ...

  8. CustomView

    https://github.com/eltld/CustomView

  9. appium-java-api

    AppiumDriver getAppStrings() 默认系统语言对应的Strings.xml文件内的数据. driver.getAppStrings(String language) 查找某一个 ...

  10. MRUnit测试

    新建一个专门的测试类,代码如下: wordcount的map函数输入string line,      输出<单词 , 1> 右键-> run as junit 出错了,因为输出不是 ...