hdu1535 SPFA
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的更多相关文章
- 最短路径算法之四——SPFA算法
SPAF算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm,该算法是西南交通大学段凡丁于1994年发表的. 它可以在O(kE)的时间复杂度内求出源点 ...
- 【BZOJ-3627】路径规划 分层图 + Dijkstra + spfa
3627: [JLOI2014]路径规划 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 186 Solved: 70[Submit][Status] ...
- POJ 2387 Til the Cows Come Home(最短路 Dijkstra/spfa)
传送门 Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 46727 Acce ...
- sgu 240 Runaway (spfa)
题意:N点M边的无向图,边上有线性不下降的温度,给固定入口S,有E个出口.逃出去,使最大承受温度最小.输出该温度,若该温度超过H,输出-1. 羞涩的题意 显然N*H的复杂度dp[n][h]表示到达n最 ...
- spfa模板
通过stl的queue实现的spfa(vector实现邻接表存图) 本模板没有考虑存在两点不连通的情况 如果需要判断则需要用到并查集或者遍历整个邻接表 #include<iostream> ...
- SPFA
SPFA算法用来求单源最短路.可以处理任何有解的情况. 先建一个数组\(dist_x = 起点到x的最短路长度\),当\(x=起点\)时为0,当x和起点不通时为INF(本题中为\(2^31-1\)). ...
- BZOJ2763 [JLOI2011]飞行路线(SPFA + DP)
题目 Source http://www.lydsy.com/JudgeOnline/problem.php?id=2763 Description Alice和Bob现在要乘飞机旅行,他们选择了一家 ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- bzoj 1179[Apio2009]Atm (tarjan+spfa)
题目 输入 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每行一 ...
随机推荐
- SPOJ AMR10E Stocks Prediction --二分求和+矩阵快速幂
题意:给一个递推式S(n) = a1*S(n-1)+...+aR*S(n-R),要求S(k)+S(2k)+...+S(nk)的值. 分析:看到n的大小和递推式,容易想到矩阵快速幂.但是如何转化呢? 首 ...
- ACdream OJ 1099 瑶瑶的第K大 --分治+IO优化
这题其实就是一个求数组中第K大数的问题,用快速排序的思想可以解决.结果一路超时..原来要加输入输出优化,具体优化见代码. 顺便把求数组中第K大数和求数组中第K小数的求法给出来. 代码: /* * th ...
- Dijkstra求最短路径
单源点的最短路径问题:给定带权有向图G和源点V,求从V到G中其余各顶点的最短路径 Dijkstra算法描述如下: (1)用带权的邻接矩阵arcs表示有向图,arcs[i][j]表示弧<vi,vj ...
- Android之数据存储----使用LoaderManager异步加载数据库
一.各种概念: 1.Loaders: 适用于Android3.0以及更高的版本,它提供了一套在UI的主线程中异步加载数据的框架.使用Loaders可以非常简单的在Activity或者Fragment中 ...
- AC日记——舒适的路线 codevs 1001 (并查集+乱搞)
1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description Z小镇是 ...
- TestLink学习一:Windows搭建Apache+MySQL+PHP环境
PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...
- Sublime Text2 安装Package Control
Sublime Text2是一款轻量级的妖娆的编辑器,想要更多私人定制功能的第一步就是安装Package Control 这是官网的安装方法: Click the Preferences > ...
- ArcGis 获取地理、平面坐标系
ESRI.ArcGIS.Geometry.ISpatialReference spatialReference = spati ...
- Html之初体验
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言.相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器根据标记 ...
- Spring小练习之宝宝淘项目
数据库准备 # 表结构 CREATE TABLE `t01_user` ( `) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `) DEFAULT NULL COM ...