hdu 6181 Two Paths (次短路)
来源:互联网 发布:sendto目标端口号 编辑:程序博客网 时间:2024/05/18 03:40
当时再搬宿舍,2点多看了下,特困,看了别人说次短路,我只做过次小生成树,没做过这个,提交了个模板就睡觉了。下午去海里游泳,贼刺激,说实话海水不好喝,闭气躺在海上是真的爽,以前总是用泳圈在玩,现在感觉游泳圈不好玩了。
次短路,数据结构以前可能做过,总有点印象,总感觉自己敲过不止一遍这个。
如果当前路径比最短路短,就把最短路的值给次短路,最短路要当前值。
如果当前值比最短路长,比次短路短,给次短路更新为当前值
#include <bits/stdc++.h>using namespace std;#define ll long longtypedef pair<ll,int>p;const ll INF=1ll<<62;struct edge{ int to; ll dis; edge(int to,ll dis){ this -> to = to; this -> dis = dis; }};int N,R;int a,b;ll c;ll dis[100005]; //记录最短路径ll disc[100005]; //记录次短路径vector<edge>G[100005];void dijkstra(){ fill(dis,dis+100005,INF); fill(disc,disc+100005,INF); priority_queue<p,vector<p>,greater<p>>q; dis[1]=0; q.push(p(0,1)); while(!q.empty()) { p P=q.top(); q.pop(); ll dd=P.first; int v=P.second; if(disc[v]<dd)continue; for(int i=0;i<(int)G[v].size();i++) { edge &e=G[v][i]; ll d=dd+e.dis; if(d<=dis[e.to]) { // cout<<d<<endl; ll tmp=d; d=dis[e.to]; dis[e.to]=tmp; q.push(p(dis[e.to],e.to)); } if(disc[e.to]>=d&&dis[e.to]<=d) { disc[e.to]=d; q.push(p(disc[e.to],e.to)); } } } cout<<disc[N]<<endl;}int main(){ int t; scanf("%d",&t); while(t--){ for(int i=0;i<100005;i++) G[i].clear(); scanf("%d%d",&N,&R); for(int i=1;i<=R;i++){ scanf("%d%d%I64d",&a,&b,&c); G[a].push_back(edge(b,c)); G[b].push_back(edge(a,c)); } dijkstra(); } return 0;}
阅读全文
0 0
- HDU 6181 Two Paths (次短路)
- hdu 6181 Two Paths (次短路)
- hdu 6181 Two Paths(次短路)
- Hdu 6181 Two Paths【次短路】
- hdu-6181 Two Paths次短路
- HDU 6181 Two Paths 次短路
- hdu 6181 Two Paths (次短路)
- hdu 6181 Two Paths -最短路条数+次短路
- HDU 6181 Two Paths【次短路】【模板题】
- HDU 6181 Two Paths(次短路变形)
- [hdu 6181 Two Paths] Dijkstra求次短路
- Two Paths HDU 次短路问题
- 2017 Multi-University Training Contest 10 1011 Two Paths HDU 6181 (次短路+最短路数量)
- hdu 6181 Two Paths(次短路径长度)POJ 3255 Roadblocks ( 次短路长度)
- HDU6181 Two Paths【次短路】
- hdu Two Paths 次短路模板 (可往回走)
- 2017 Multi-University Training Contest 10 1011 Two Paths HDU 6181 (次短路)
- 2017 第十场多校训练 HDU 6181 Two Paths 次短路+Dijkstra
- 让浏览器不缓存数据
- Java:按值传递还是按引用传递详细解说
- UI效果(2)
- Mac OS X 10.10 Apache+ PHP配置
- CentOS Linux更改MySQL数据库目录位置具体操作
- hdu 6181 Two Paths (次短路)
- 对于Quartz的时间配置符号中?的终极说明
- SpringMVC视图解析器与数据类型转换
- yum安装MySQL5.6
- XZ_CSS之CSS新增特性
- Centos系统怎么添加用户和组
- jsp 解析xml
- execute immediate的语法
- Hybrid APP混合开发