hdu 1535 Invitation Cards 最短路spfa+逆向建图
来源:互联网 发布:淘宝店铺怎么提现 编辑:程序博客网 时间:2024/06/05 16:00
题意:求起始点到各点的来回最短路径总和。
建一张正向图,一张反向图,由于数据较大,用邻接表存储。
#include <iostream>#include<cstdio>#include<cmath>#include<cstring>#include<queue>#define N 1100000#define INF 0x7ffffffusing namespace std;struct node{ int next,to,w;}e[N][2];int head[N][2],n,cnt[2],d[N],v[N];void add_edge(int u,int v,int w,int t){ e[cnt[t]][t].to=v; e[cnt[t]][t].w=w; e[cnt[t]][t].next=head[u][t]; head[u][t]=cnt[t]++;}int spfa(int t){ for(int i=1;i<=n;i++) d[i]=INF,v[i]=0; queue<int> q; q.push(1); v[1]=1; d[1]=0; while(!q.empty()) { int c=q.front(); q.pop(); v[c]=0; for(int i=head[c][t];i!=-1;i=e[i][t].next) { int u=e[i][t].to,w=e[i][t].w; if(d[u]>d[c]+w) { d[u]=d[c]+w; if(!v[u]) v[u]=1,q.push(u); } } } int ans=0; for(int i=1;i<=n;i++) ans+=d[i]; return ans;}int main(){ int T,m; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); memset(head,-1,sizeof(head)); cnt[0]=cnt[1]=0; for(int i=0;i<m;i++) { int u,v,w; scanf("%d%d%d",&u,&v,&w); add_edge(u,v,w,0); add_edge(v,u,w,1); } cout<<spfa(0)+spfa(1)<<endl; }}
0 0
- hdu 1535 Invitation Cards 最短路spfa+逆向建图
- hdu 1535 Invitation Cards spfa求最短路,反向建图再来一次
- HDOJ 1535 Invitation Cards 【最短路 SPFA】
- HDU 1535 Invitation Cards (最短路 建正反图)
- HDU 1535 Invitation Cards 有向图的来回最短路(邻接表反向建图)+spfa
- HDU 1535 Invitation Cards (spfa, 链式前向星,逆向建图)
- hdu 1535 Invitation Cards(最短路)
- 【HDU】1535 Invitation Cards 最短路
- HDU 1535 Invitation Cards【SPFA最短路】【正反向建边求单源最短路之和】
- [最短路spfa]pku1511-Invitation Cards
- poj 1511 Invitation Cards(spfa最短路)
- POJ 1511 Invitation Cards 最短路SPFA
- HDU1535 Invitation Cards(最短路,spfa)
- HDU ACM 1535 Invitation Cards单点到多源最短路->SPFA算法
- HDU 1535 Invitation Cards(SPFA+双向建图 )
- hdu 1535 Invitation Cards【SPFA】
- HDU 1535 Invitation Cards SPFA
- hdu 1535 Invitation Cards(有向图的来回最短路,要反向建图)
- IDT BO权限控制
- KMP简单使用
- 冒泡排序
- 2007-2008 Winter Petrozavodsk Camp, Andrew Stankevich Contest 30-G - Pulp Fiction-贪心+优先队列
- Android学习笔记(1)
- hdu 1535 Invitation Cards 最短路spfa+逆向建图
- FZU 2110Star(计算几何)
- 64. Minimum Path Sum 动态规划
- 计算机安全技术(第2版)
- Objective-c 对象与类 封装
- 【BZOJ1042】[HAOI2008]硬币购物【计数DP】【容斥原理】
- Fargment传值的两种方法
- HTML学习笔记(十)框架
- Android 关于fragment切换重新加载的解决分享给大家