POJ 3255 Roadblocks 次短路
和Dijksta求最短路一样,只是要维护两个数组:最短路d1,次短路d2。然后更新的时候注意细节。
![](/assets/blank.gif)
![](/assets/blank.gif)
//#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<iostream> #include<sstream> #include<cmath> #include<climits> #include<string> #include<map> #include<queue> #include<vector> #include<stack> #include<set> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; #define pb(a) push(a) #define INF 0x1f1f1f1f #define lson idx<<1,l,mid #define rson idx<<1|1,mid+1,r #define PI 3.1415926535898 template<class T> T min(const T& a,const T& b,const T& c) {return min(min(a,b),min(a,c)); } template<class T> T max(const T& a,const T& b,const T& c) {return max(max(a,b),max(a,c)); } void debug() { #ifdef ONLINE_JUDGE #elsefreopen("in.txt","r",stdin);//freopen("d:\\out1.txt","w",stdout); #endif } int getch() {int ch;while((ch=getchar())!=EOF) {if(ch!=' '&&ch!='\n')return ch;}return EOF; }struct HeapNode {int d,u;bool operator < (const HeapNode &ant) const{return ant.d<d;} };struct Edge {int from,to,dist; };const int maxn=5005;vector<int> g[maxn]; vector<Edge> edge; int n; int d1[maxn],d2[maxn];void init() {for(int i=1;i<=n;i++)g[i].clear();edge.clear(); }void add(int u,int v,int w) {Edge e=(Edge){u,v,w};edge.push_back(e);g[u].push_back(edge.size()-1); } void solve(int s) {for(int i=1;i<=n;i++)d1[i]=d2[i]=INF;priority_queue<HeapNode> q;d1[s]=0;q.push((HeapNode){0,s});while(!q.empty()){HeapNode x=q.top(); q.pop();if(x.d>d2[x.u])continue;int u=x.u;for(int i=0;i<g[u].size();i++){Edge &e=edge[g[u][i]];int v=e.to;int d=x.d;if(e.dist+d<d1[v]){d2[v]=d1[v];d1[v]=d+e.dist;q.push((HeapNode){d1[v],v});}else if(e.dist+d<d2[v]&&e.dist+d!=d1[v]){d2[v]=d+e.dist;q.push((HeapNode){d2[v],v});}}} } int main() {int m;while(scanf("%d%d",&n,&m)!=EOF){init();for(int i=1;i<=m;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);add(u,v,w);add(v,u,w);}solve(1);printf("%d\n",d2[n]);}return 0; }
View Code
转载于:https://www.cnblogs.com/BMan/p/3647537.html
POJ 3255 Roadblocks 次短路相关推荐
- POJ - 3255 Roadblocks(次短路)
题目链接:点击查看 题目大意:求次短路 题目分析:唉,限时训练的时候遇到的这个题,明明之前系统学习过次短路和次小生成树这个方面的知识的,可能是很长时间没 用,板子都忘掉了,不过还好,在考试的时候想到了 ...
- poj 3255 Roadblocks (SPFA)
题目大意:在一个图上有许多个农场,有个人从1农场出发,到他的朋友n农场去,他不想走一条最短路径,这次他想换条路走,要你帮他找一条次短路径,次短路的定义是,比最短路径长度短(可能有多条),但是不会比其他 ...
- POJ 3255 次短路
题目描述 POJ 3255 思路 代码 参考文章 一个没有使用很多编程技巧的方法: 思路是如果有多条最短路,则次短路为最短路,否则次短路. 其中head 数组是用来保存点所对应的边索引(最后一条加入的 ...
- [BZOJ1726][Usaco2006 Nov]Roadblocks第二短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1277 Solved: 607 ...
- bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路(A*第k短路)
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1324 Solved: 627 ...
- 【POJ】3255 Roadblocks(次短路+spfa)
http://poj.org/problem?id=3255 同匈牙利游戏. 但是我发现了一个致命bug. 就是在匈牙利那篇,应该dis2单独if,而不是else if,因为dis2和dis1相对独立 ...
- POJ 3255(迪杰斯特拉算法求次短路)
POJ3255,问题是求节点1到n的次短路. 在dijkstra求最短路算法的基础上进行变形,用两个数组分别记录源点到各节点最短路径和次短路径: 每次更新时,都将最短路的节点及可能成为次短路的节点pu ...
- Poj 3255(dijkstra求次短路)
题目传送门 详情见<挑战程序设计竞赛>P109 代码如下: #include <algorithm> #include <cstdio> #include < ...
- 3255 Roadblocks
#题目 Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19318 Accepted: 6779 D ...
最新文章
- conda安装tensorflow-gpu简洁版_笔记本的垃圾显卡也能装Tensorflow GPU版,简明教程
- bitter matlab,两分钟英语自我介绍模板
- 本科是学计算机研究生学教育学,教育学研究生好考吗?
- 光纤收发器有什么用?光纤收发器的作用是什么?
- html表单自动提交表单提交表单数据类型,表单
- alipay.php on line 85,Ecshop报错:Strict Standards: Redefining already defined constructor for class...
- 基于流程的多维度企业管理框架(第三稿)
- python optimize_python多元拟合问题
- 学完计算机技术的感受,计算机培训心得体会
- (1)初识云计算-《云计算核心技术剖析》学习笔记
- pychram终止程序
- python实现图片找不同游戏_用Python实现QQ游戏大家来找茬辅助工具
- 实验室建立计量管理体系的重要性和意义
- 震惊!某徐姓诗人竟,,
- ubuntu18.04安装微信——简单操作
- 【drawio笔记】在图表中添加和删除图层
- 【Python学习笔记】3. Python3 基础语法
- usermod--修改用户账号信息命令
- 微信小程序(视图与逻辑)
- 牛客练习赛13-C题幸运数字III
热门文章
- Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]
- 学习go语言国内最全资料链接
- 4、Docker 提交运行中容器作为新的镜像
- 跨域产生的原因和解决方法_幼儿语言障碍产生的原因及其解决方法
- 万豪旅享家官方商城携手神策数据,数字化礼遇更高质量的用户体验
- 6 步搭建数据平台—从指标体系到相关技术 | 周四话数据
- 如何帮助企业优化商业模式?看精益数据分析的“欺”与“破”
- 喜报!良品铺子签约神策数据
- SPringBoot+mybatis 框架搭建例子
- Intellij Idea 从 Svn 检出 Maven 项目、部署 Tomcat 运行