#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
const int maxn=1000010,inf=1000000000;
long long ans;
int e,to[maxn],next[maxn],begin[maxn],w[maxn];
int e1,to1[maxn],next1[maxn],begin1[maxn],w1[maxn];
int d[maxn],p[maxn],q[maxn*50];
int m,n,f,l;
void add(int x,int y,int z){
to[++e]=y;
next[e]=begin[x];
begin[x]=e;
w[e]=z;
}
void add1(int x,int y,int z){
to1[++e1]=y;
next1[e1]=begin1[x];
begin1[x]=e1;
w1[e1]=z;
}
int main(){
int i,j,k,m,n;
int t;
scanf("%d",&t);
while(t--){
int i,j,k,x,y,z;
scanf("%d%d",&n,&m);
e=0;e1=0;
for(i=1;i<=n;i++){begin[i]=0;begin1[i]=0;}
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
add1(y,x,z);
}
for(i=1;i<=n;i++){
d[i]=inf;
p[i]=0;
}
f=0;l=1;
d[1]=0;q[1]=1;p[1]=1;
while(f<l){
f++;
k=q[f];p[k]=0;
for(i=begin[k];i;i=next[i])
if(d[to[i]]>d[k]+w[i]){
d[to[i]]=d[k]+w[i];
if(!p[to[i]]){
q[++l]=to[i];
p[to[i]]=1;
}
}
}
ans=0;
for(i=1;i<=n;i++)ans+=d[i]; for(i=1;i<=n;i++){
d[i]=inf;
p[i]=0;
}
f=0;l=1;
d[1]=0;q[1]=1;p[1]=1;
while(f<l){
f++;
k=q[f];p[k]=0;
for(i=begin1[k];i;i=next1[i])
if(d[to1[i]]>d[k]+w1[i]){
d[to1[i]]=d[k]+w1[i];
if(!p[to1[i]]){
q[++l]=to1[i];
p[to1[i]]=1;
}
}
}
for(i=1;i<=n;i++)ans+=d[i];
printf("%I64d\n",ans);
}
return 0;
}

POJ 1511 链式前向星+SPFA的更多相关文章

  1. 链式前向星+SPFA

    今天听说vector不开o2是数组时间复杂度常数的1.5倍,瞬间吓傻.然后就问好的图表达方式,然后看到了链式前向星.于是就写了一段链式前向星+SPFA的,和普通的vector+SPFA的对拍了下,速度 ...

  2. POJ 3169 Layout(差分约束+链式前向星+SPFA)

    描述 Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 ...

  3. 【模板】链式前向星+spfa

    洛谷传送门--分糖果 博客--链式前向星 团队中一道题,数据很大,只能用链式前向星存储,spfa求单源最短路. 可做模板. #include <cstdio> #include <q ...

  4. POJ 1511 Invitation Cards 链式前向星+spfa+反向建边

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 27200   Accepted: 902 ...

  5. POJ 2387 链式前向星下的SPFA

    (POJ)[http://poj.org/problem?id=2387] Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K ...

  6. 洛谷 P3371 【模板】单源最短路径 【链式前向星+SPFA】

    题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...

  7. 单元最短路径算法模板汇总(Dijkstra, BF,SPFA),附链式前向星模板

    一:dijkstra算法时间复杂度,用优先级队列优化的话,O((M+N)logN)求单源最短路径,要求所有边的权值非负.若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的 ...

  8. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  9. 最短路 spfa 算法 && 链式前向星存图

    推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...

随机推荐

  1. hdu 1664(数论+同余搜索+记录路径)

    Different Digits Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  2. hdu 1806(线段树区间合并)

    Frequent values Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  3. 【已解决】php本地环境超级慢

    打开 C:\Windows\System32\drivers\etc去掉 #127.0.0.1 localhost 前面的#保留 #::1 localhost 前面的#

  4. PHP实现选择排序

    选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...

  5. HDU 6118 2017百度之星初赛B 度度熊的交易计划(费用流)

    度度熊的交易计划 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Sqli-labs less 7

    Less-7 本关的标题是dump into outfile,意思是本关我们利用文件导入的方式进行注入.而在background-3中我们已经学习了如何利用dump into file. 这里首先还是 ...

  7. getResourceAsStream 地址

    getResourceAsStream ()返回的是inputstream getResource()返回:URL Class.getResource("")    返回的是当前C ...

  8. 【POJ 2186】Popular Cows

    http://poj.org/problem?id=2186 tarjan求强连通分量. 因为SD省选用WinXP+Cena评测而且不开栈,所以dfs只好写手动栈了. 写手动栈时思路清晰一点应该是不会 ...

  9. 【转载】R中有关数据挖掘的包

    下面列出了可用于数据挖掘的R包和函数的集合.其中一些不是专门为了数据挖掘而开发,但数据挖掘过程中这些包能帮我们不少忙,所以也包含进来. 1.聚类 常用的包: fpc,cluster,pvclust,m ...

  10. 2016ACM-ICPC网络赛北京赛区 1001 (trie树牌大模拟)

    [题目传送门] 1383 : The Book List 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The history of Peking University ...