HDU6181 Two Paths【次短路】
来源:互联网 发布:怎样金融网络投资 编辑:程序博客网 时间:2024/05/29 18:15
题意:求1到n的次短路
思路:套下模板
#include<stdio.h>#include<iostream>#include<string.h>#include<string>#include<stdlib.h>#include<math.h>#include<vector>#include<list>#include<map>#include<stack>#include<queue>#include<algorithm>#include<numeric>#include<functional>using namespace std;typedef long long ll;typedef pair<ll,int> pii;const int maxn = 100005; struct edge{ int to, cost; };vector<edge> G[maxn];ll dis[maxn]; //最短距离 ll dis2[maxn]; //次短距离 void init(int x){for(int i = 0; i <= x; i++)G[i].clear(); }void add(int a,int b,int c){G[a].push_back((edge){b,c});G[b].push_back((edge){a,c});}void solve(){ memset(dis,0x3f,sizeof dis); memset(dis2,0x3f,sizeof dis2); //pair是以first为主关键字进行排序 priority_queue<pii, vector<pii>, greater<pii> > q; dis[1] = 0; q.push(pii(0, 1)); while(!q.empty()){ pii x = q.top(); q.pop(); int v = x.second;ll d = x.first; if(dis2[v] < d) continue; for(int i = 0; i < G[v].size(); i++){ edge &e = G[v][i]; ll d2 = d + e.cost; if(dis[e.to] > d2){ swap(dis[e.to], d2); q.push(pii(dis[e.to], e.to)); } if(dis2[e.to] > d2 && dis[v] < d2){ dis2[e.to] = d2; q.push(pii(dis2[e.to], e.to)); } } }} int main(){ int T,n,m;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);init(n);for(int i = 0; i < m; i++){int a,b,c; scanf("%d%d%d",&a,&b,&c); add(a,b,c); }solve();printf("%lld\n",dis2[n]);} return 0; }
阅读全文
0 0
- HDU6181 Two Paths【次短路】
- hdu6181 Two Paths 次短路模板
- hdu6181 Two Paths(次短路)
- HDU6181-Two Paths【A*算法or次短路】
- hdu6181-启发式搜索A*|次短路模板|最短路枚举-Two Paths
- HDU6181 Two Paths(次短路,路径记录,spfa,2017 HDU多校联赛 第10场)
- 【hdu6181】Two Paths(次短路----每条边经过不止一次)
- hdu6181 Two Paths
- HDU6181-Two Paths
- hdu6181次短路
- hdu6181 How Many Paths Are There(次短路条数[模板])
- 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 (次短路)
- ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理
- RecyclerView改造成ViewPager思路
- java http请求中解决跨域问题
- python pickle
- 高性能流媒体服务器EasyDSS前端重构(二) webpack + vue + AdminLTE 多页面提取共用文件, 优化编译时间
- HDU6181 Two Paths【次短路】
- LintCode:M-乘积最大子序列
- I2C总线协议
- pandas读取出错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0
- virtualBox虚拟机网络设置(四种方式)
- 使用谷歌调试手机出现空白页问题
- sdp开发
- Linux——Shell学习笔记2
- 美团 Cat 源码文章