POJ 3255 Roadblocks
来源:互联网 发布:zip在linux下解压 编辑:程序博客网 时间:2024/06/05 03:34
链接:http://poj.org/problem?id=3255
题目要求1~N的次短路径.
代码来自《挑战程序设计竞赛》
#include <iostream>#include<queue>#include<vector>#define MAX_N 100005#define INF 1000000using namespace std;struct edge{ int to; int cost;};typedef pair<int ,int> P;vector<edge> g[MAX_N];int dist1 [MAX_N];int dist2 [MAX_N];priority_queue<P,vector<P>,greater<P> > que;void solve(int N){ int i; for(i=0;i<MAX_N;i++) { dist1[i]=INF; dist2[i]=INF; } dist1[0]=0; que.push(make_pair(0,1)); while(!que.empty()) { P p=que.top(); que.pop(); int v=p.second,d=p.first; if(dist2[v]<d) continue; for(i=0; i<g[v].size(); i++) { edge &e=g[v][i]; int d2=d+e.cost; if(dist1[e.to]>d2) { swap(dist1[e.to],d2); que.push(make_pair(dist1[e.to],e.to)); } if(dist2[e.to]>d2&&dist1[e.to]<d2) { dist2[e.to]=d2; que.push(make_pair(dist2[e.to],e.to)); } } } cout<<dist2[N]<<endl;}int main(){ int N,R; int ta,tb,tc; int i; edge e; cin>>N>>R; for(i=0;i<R;i++) { cin>>ta>>tb>>tc; e.to=tb;e.cost=tc; g[ta].push_back(e); e.to=ta; g[tb].push_back(e); } solve(N); return 0;}
0 0
- poj 3255 Roadblocks
- poj 3255 Roadblocks
- POJ-3255-Roadblocks
- POJ 3255 Roadblocks
- POJ 3255 Roadblocks
- poj 3255 Roadblocks
- POJ 3255 Roadblocks
- poj 3255 Roadblocks
- POJ 3255 Roadblocks
- POJ 3255 Roadblocks
- POJ-3255-Roadblocks
- poj 3255 Roadblocks
- poj 3255 Roadblocks
- POJ 3255 Roadblocks
- POJ 3255 Roadblocks
- POJ-3255 Roadblocks
- poj 3255 Roadblocks
- POJ 3255 Roadblocks
- EXPIRE
- zoj 3299 线段树
- HDU 4859(Bestcoder #1 1003)海岸线(网络流之最小割)
- 针对Android4.0以上屏蔽系统Hemo键
- 《ASP.NET本质论》大文件上传
- POJ 3255 Roadblocks
- OpenCV学习笔记18 OpenCV高级GUI和多媒体模块 HIGHGUI MODULE (二)
- jquery ajax 表单验证
- 申请iOS develop program
- 获取数据库表中数据的insert语句
- hdu oj Period (kmp的应用)
- 获取手机APP对网络访问数据的一个思路
- ios记住密码KeychainItemWrapper
- 移动wap input登陆框自适应屏幕大小