#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. 使用python读取文本中结构化数据

    需求 read some .txt file in dir and find min and max num in file. solution: echo *.txt > file.name ...

  2. 计划任务at cron

    计划任务作用:做一些周期性的任务,主要用于定时备份数据,同步时间,定时删除日志 所有计划任务执行的输出都会以邮件的方式发送给指定用户,除非重定向 (1)at:一次性调度执行 1)安装 yum inst ...

  3. CentOS7下Samba的安装与配置

    一.Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享 ...

  4. 【笔试题】Java 易错题精选

    笔试题 Java 易错题精选 1.写出下列程序的运行结果( )String 不变性Java 值传递 public class Test { public static void main(String ...

  5. C/C++宏的用法

    今天看caffe源码的时候看到了很多宏定义的内容,苦于代码基础薄弱,无法全部理解,故在网上搜得此篇好文,转载一发附原文地址:http://blog.csdn.net/hanchaoman/articl ...

  6. Codeforces 1104 D. Game with modulo-交互题-二分-woshizhizhang(Codeforces Round #534 (Div. 2))

    D. Game with modulo time limit per test 1 second memory limit per test 256 megabytes input standard ...

  7. asp.net mvc 中使用NPOI导出excel

    版本信息:NPOI1.2.5(2.0以上的版本很多方法不清楚) 明确三点: path: mvc 部署网站的时候,我们肯定要拷贝的一个文件夹就mvc的UI层,有点可以肯定的是,你部署网站的路径不一定都是 ...

  8. plsql分支,循环,异常

    pl/sql 分支,循环和异常分支:    DECLARE        BEGIN        END; 循环:loop,while,for    1.LOOP        EXIT WHEN ...

  9. 循序渐进PYTHON3(十三) --6-- COOKIE和SESSION

               1. 由于HTTP协议是无状态的协议(发送一次请求即断开),所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session. 典型的场景比如购物车,当 ...

  10. python之并发编程(线程\进程\协程)

    一.进程和线程 1.进程 假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源.是 ...