2边SPFA 然后求和

#include<stdio.h>
#include<string.h>
#include<queue>
#define INF 1000000000
#define ii __int64
using namespace std;
struct node
{
ii v;
ii val;
ii next;
}edge1[],edge2[];
ii head1[],dis1[],head2[],dis2[],vis[];
ii n,m,t,index1,index2;
void add1(ii x,ii y,ii z)
{
ii i,j;
edge1[index1].v=y;
edge1[index1].val=z;
edge1[index1].next=head1[x];
head1[x]=index1++;
}
void add2(ii x,ii y,ii z)
{
ii i,j;
edge2[index2].v=y;
edge2[index2].val=z;
edge2[index2].next=head2[x];
head2[x]=index2++;
}
void SPFA1(ii u)
{
ii i,j;
memset(vis,,sizeof(vis));
queue<ii>q;
for(i=;i<=n;i++)
dis1[i]=INF;
dis1[u]=;
vis[u]=;
q.push(u);
while(!q.empty())
{
ii v=q.front();
q.pop();
vis[v]=;
for(i=head1[v];i!=-;i=edge1[i].next)
{
ii tmp=edge1[i].v;
if(dis1[tmp]>dis1[v]+edge1[i].val)
{
dis1[tmp]=dis1[v]+edge1[i].val;
if(!vis[tmp])
{
q.push(tmp);
vis[tmp]=;
}
}
}
}
}
void SPFA2(ii u)
{
ii i,j;
memset(vis,,sizeof(vis));
queue<ii>q;
for(i=;i<=n;i++)
dis2[i]=INF;
dis2[u]=;
vis[u]=;
q.push(u);
while(!q.empty())
{
ii v=q.front();
q.pop();
vis[v]=;
for(i=head2[v];i!=-;i=edge2[i].next)
{
ii tmp=edge2[i].v;
if(dis2[tmp]>dis2[v]+edge2[i].val)
{
dis2[tmp]=dis2[v]+edge2[i].val;
if(!vis[tmp])
{
q.push(tmp);
vis[tmp]=;
}
}
}
}
}
int main()
{
ii i,j,t,m;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d%I64d",&n,&m);
index1=index2=;
memset(dis1,,sizeof(dis1));
memset(head1,-,sizeof(head1));
memset(dis2,,sizeof(dis2));
memset(head2,-,sizeof(head2));
for(i=;i<m;i++)
{
ii x,y,z;
scanf("%I64d%I64d%I64d",&x,&y,&z);
add1(x,y,z);
add2(y,x,z);
} SPFA1(); /*for(i=1;i<=n;i++)
printf("%d ",dis1[i]);
printf("\n");*/ SPFA2(); /*for(i=1;i<=n;i++)
printf("%d ",dis2[i]);printf("\n");*/ ii ans=;
for(i=;i<=n;i++)
{
ans+=dis1[i]+dis2[i];
}
printf("%I64d\n",ans);
}
}

hdu1535 SPFA的更多相关文章

  1. 最短路径算法之四——SPFA算法

    SPAF算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm,该算法是西南交通大学段凡丁于1994年发表的. 它可以在O(kE)的时间复杂度内求出源点 ...

  2. 【BZOJ-3627】路径规划 分层图 + Dijkstra + spfa

    3627: [JLOI2014]路径规划 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 186  Solved: 70[Submit][Status] ...

  3. POJ 2387 Til the Cows Come Home(最短路 Dijkstra/spfa)

    传送门 Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 46727   Acce ...

  4. sgu 240 Runaway (spfa)

    题意:N点M边的无向图,边上有线性不下降的温度,给固定入口S,有E个出口.逃出去,使最大承受温度最小.输出该温度,若该温度超过H,输出-1. 羞涩的题意 显然N*H的复杂度dp[n][h]表示到达n最 ...

  5. spfa模板

    通过stl的queue实现的spfa(vector实现邻接表存图) 本模板没有考虑存在两点不连通的情况 如果需要判断则需要用到并查集或者遍历整个邻接表 #include<iostream> ...

  6. SPFA

    SPFA算法用来求单源最短路.可以处理任何有解的情况. 先建一个数组\(dist_x = 起点到x的最短路长度\),当\(x=起点\)时为0,当x和起点不通时为INF(本题中为\(2^31-1\)). ...

  7. BZOJ2763 [JLOI2011]飞行路线(SPFA + DP)

    题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=2763 Description Alice和Bob现在要乘飞机旅行,他们选择了一家 ...

  8. bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)

    数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...

  9. bzoj 1179[Apio2009]Atm (tarjan+spfa)

    题目 输入 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每行一 ...

随机推荐

  1. 详解Webwork中Action 调用的方法

    详解Webwork中Action 调用的方法 从三方面介绍webwork action调用相关知识: 1.Webwork 获取和包装 web 参数 2.这部分框架类关系 3.DefaultAction ...

  2. 2014 Super Training #10 D 花生的序列 --DP

    原题: FZU 2170 http://acm.fzu.edu.cn/problem.php?pid=2170 这题确实是当时没读懂题目,连样例都没想通,所以没做了,所以还是感觉这样散漫的做不好,有些 ...

  3. 2014 Super Training #6 B Launching the Spacecraft --差分约束

    原题:ZOJ 3668 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3668 典型差分约束题. 将sum[0] ~ sum ...

  4. 贴图在Unity中的设置

    例如:一张512X512的图片占用的内存大小,计算方法:512*512*4/1024=1.024MB. 如果在贴图设置里设置成真彩色那就等于计算的值,设置成16位色彩,内存占用会减少. 在进行性能优化 ...

  5. You are note Hk

    直接打开是forbidden  最后一句话提示 于是改包 第二次还是修改包 Mozilla/5.0 (MSIE 7.0; Windows NT 6.0;.NET CLR 9.9)

  6. ArcGIS Engine 中 Geometric Network 显示流向代码

    原文地址:http://hi.baidu.com/steeeeps/item/165fbc15475e94741009b5b3 非常感谢作者. 以前学习几何网络时,对效用网络流向进行了总结,原理与效果 ...

  7. xcode插件XAlign

    一款十分强大的自定义对齐模式插件 开源地址:https://github.com/qfish/XAlign/ 终端输入命令: $ curl http://qfi.sh/XAlign/build/ins ...

  8. [Android学习笔记]理解焦点处理原理的相关记录

    焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...

  9. XCode的 Stack Trace,调试时抛出异常,定位到某一行代码

    在Xcode调试程序的时候,总是会出现不知道错误在什么地方的问题,很是捉急,现在又一个办法,可以具体定位到错误行的代码,试一下吧?超级好用 操作很简单: 1.在XCode界面中按cmd + 6快捷键, ...

  10. Silverlight中使用MVVM:DataGrid中触发Button的Click事件

    方法1.使用RelativeSource向上查找DataContext中的命令,但是需要注意的是命令绑定需要写全 类似: DataContext.ReLoadCommand<Button Gri ...