【USACO06NOV】路障
【题目链接】
【算法】
最短路
【代码】
#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】路障的更多相关文章
- P2865 [USACO06NOV]路障Roadblocks
P2865 [USACO06NOV]路障Roadblocks 最短路(次短路) 直接在dijkstra中维护2个数组:d1(最短路),d2(次短路),然后跑一遍就行了. attention:数据有不同 ...
- 洛谷——P2865 [USACO06NOV]路障Roadblocks
P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...
- 络谷 P2865 [USACO06NOV]路障Roadblocks
P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...
- P2865 【[USACO06NOV]路障Roadblocks】(次短路)
传送门 算法Dijkstra要求次短路 那么在不考虑重复走一条边的情况下 肯定是把最短路中的一段改成另一段 至少要换另一条边到路径里所以可以枚举所有不属于最短路的每条边(a,b) 那么dis(1,a) ...
- 【洛谷 P2865】 [USACO06NOV]路障Roadblocks(最短路)
题目链接 次短路模板题. 对每个点记录最短路和严格次短路,然后就是维护次值的方法了. 和这题一样. #include <cstdio> #include <queue> #in ...
- [USACO06NOV]路障---严格次短路
Description 贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样, ...
- 洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】
链接:https://www.luogu.org/problemnew/show/P2865 题目描述 Bessie has moved to a small farm and sometimes e ...
- LG2865 [USACO06NOV]路障Roadblocks
题意 Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best friends. ...
- luogu2865 [USACO06NOV]路障Roadblocks 次短路
注意:如果是这么个写法,堆数组要开成n+m的. 为什么呢?设想一下从1到2有m条长度递减的路,这岂不是要入队m次-- #include <algorithm> #include <i ...
- BZOJ 1726 洛谷 2865 [USACO06NOV]路障Roadblocks【次短路】
·求1到n的严格次短路. [题解] dijktra魔改?允许多次入队,改了次短路的值也要入队. #include<cstdio> #include<algorithm> #de ...
随机推荐
- 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
http://www.cnblogs.com/JackSun/archive/2010/12/16/1908104.html 此窗体,只需要简单准备如下,即可运行: 1,添加一个TAdvStri ...
- codevs——2693 上学路线(施工)
2693 上学路线(施工) 时间限制: 2 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 问题描述 你所在的城市街道好像一个 ...
- python和python-dev
问:python-dev是什么?为什么安装了python后有时还要安装python-dev? 答: linux发行版通常会把类库的头文件和相关的pkg-config分拆成一个单独的xxx-dev(el ...
- python3.x对python2.x变动
原文地址:http://rookiedong.iteye.com/blog/1185403 python 2.4 与 python 3.0 的比较 一. print 从语句变为函数 原: pr ...
- 大话大前端时代(一) —— Vue 与 iOS 的组件化
序 今年大前端的概念一而再再而三的被提及,那么大前端时代究竟是什么呢?大前端这个词最早是因为在阿里内部有很多前端开发人员既写前端又写 Java 的 Velocity 模板而得来,不过现在大前端的范围已 ...
- C++中结构和类的区别
首先从从语言角度来看,c语言是一种结构化的语言,便于按照模块化的方式来组织程序,易于程序员的调试和维护,而对于c++来说,我么可以认为它是标准c的超集.实际上所有的c程序也是c++程序.但两者之间还是 ...
- NOI 2014简要题解
Day 1.Problem A. 起床困难综合症 100分做法: 把数字看成二进制数.对于初始攻击力.我们将其拆成32位,并求出每一位为0和1时经过全部防御门之后分别得到的数字.然后就是按位贪心了,我 ...
- 12.怎样自学Struts2发送邮件和验证补充[视频]
12.怎样自学Struts2发送邮件和验证补充[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了,仅仅好传到百度云上: http://pan.b ...
- Arcgis Engine(ae)接口详解(1):featureClass
//IFeatureClass 来源请自行解决 IFeatureClass featureClass = null; //获取featureClass的各种名称 //PS:featureClass可以 ...
- nyoj 题目10 skiing —— 南阳oj
题目信息例如以下: skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描写叙述 Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激.但是为了获得速度,滑的区 ...