题目大意:

计算从 1 点 到 其他所有点的 往返距离之和, 因为是 有向图, 所以我们需要将图反存 一次, 然后求两次单源最短路, 结果就出来了。

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
#define INF 0xffffffff
#define maxn 1000005 struct Edge
{
int w, e;
}; int UseCount[maxn], m ,n;
bool Use[maxn];
long long dist[][maxn]; vector<vector<Edge> > G[]; void Init()
{
G[].clear();
G[].clear();
G[].resize(n+);
G[].resize(n+);
for(int i=; i<=n; i++)
{
dist[][i] = dist[][i] = INF, Use[i] = false;
}
}
long long Spfa(int k)
{
Edge P, Pn;
P.w = , P.e = ;
dist[k][] = ;
queue<Edge>Q;
Q.push(P); while( !Q.empty() )
{
P = Q.front();
Q.pop();
Use[P.e] = false;
int len = G[k][P.e].size(); for(int i=; i<len; i++)
{
Pn = G[k][P.e][i]; if(dist[k][Pn.e] > dist[k][P.e] + Pn.w)
{
dist[k][Pn.e] = dist[k][P.e] + Pn.w;
if( !Use[Pn.e] )
{
Q.push(Pn);
Use[Pn.e] = true;
}
}
}
} long long sum = ; for(int i=; i<=n; i++)
sum += dist[k][i];
return sum;
} int main()
{
int T;
Edge P;
scanf("%d",&T);
while(T--)
{ scanf("%d%d",&n,&m);
Init();
for(int i=; i<m; i++)
{
int a, b, c;
scanf("%d%d%d",&a,&b,&c);
P.e = b, P.w = c;
G[][a].push_back(P);
P.e = a;
G[][b].push_back(P);
} long long sum = ; sum += Spfa();
sum += Spfa(); printf("%I64d\n",sum);
}
return ;
}

POJ 1511 SPFA+邻接表 Invitation Cards的更多相关文章

  1. poj 1511(SPFA+邻接表)

    题目链接:http://poj.org/problem?id=1511 思路:题目意思很简单就是要求源点到各点的最短路之和,然后再求各点到源点的最短路之和,其实就是建两个图就ok了,其中一个建反图.1 ...

  2. POJ - 3255 SPFA+邻接表求次短路径

    题意:给出m条边 , n个顶点,u [ i ]到v [ i ] 的距离w [ i ],求除了最短路的那条最短的边的长度. 思路:之前有做过相似的题,使用迪杰斯特拉算法求单源最短路径,并且记录路径,枚举 ...

  3. Poj(2679),SPFA,邻接表(主流写法)

    题目链接:http://poj.org/problem?id=3268 题意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求 ...

  4. poj 1511(spfa)

    ---恢复内容开始--- http://poj.org/problem?id=1511 一个spfa类的模板水题. 题意:就是求从1到n个点的来回的所有距离和. 对spfa类的题还是不太熟练,感觉还是 ...

  5. SPFA&邻接表 PASCAL

    题目来自CODE[VS]-->热浪 1557 热浪 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石       题目描述 Description 德克萨斯纯朴的民眾们这个 ...

  6. POJ--3268--Silver Cow Party【SPFA+邻接表】

    题意:一些牛要去某一点參加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少须要花费多长时间. 思路:从聚会地点返回,相当于是从某一点到其它各个点的最短路径.从牛的家中走到聚会地点,能够把 ...

  7. HDU 2544 最短路 SPFA 邻接表 模板

    Problem Description 在每年的校赛里,全部进入决赛的同学都会获得一件非常美丽的t-shirt.可是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以如今他们想 ...

  8. 【算法系列学习】SPFA邻接表最短路 [kuangbin带你飞]专题四 最短路练习 F - Wormholes

    https://vjudge.net/contest/66569#problem/F 题意:判断图中是否存在负权回路 首先,介绍图的邻接表存储方式 数据结构:图的存储结构之邻接表 邻接表建图,类似于头 ...

  9. HDOJ 2544 最短路(最短路径 dijkstra算法,SPFA邻接表实现,floyd算法)

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

随机推荐

  1. [Ruby] LEVEL 2 Methods and Classes

    Optional Arguments Set default arguments, when we don't need to call it, we can simply skip it. def ...

  2. 移动端屏幕自适应js与rem

    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;&qu ...

  3. JavaScript设计模式之策略模式(学习笔记)

    在网上搜索“为什么MVC不是一种设计模式呢?”其中有解答:MVC其实是三个经典设计模式的演变:观察者模式(Observer).策略模式(Strategy).组合模式(Composite).所以我今天选 ...

  4. UITableView-FDTemplateLayoutCell自动计算UITableView高度的使用

    基本应用如果你有self-satisfied cell,那么你应该做的是:#import "UITableView+FDTemplateLayoutCell.h"- (CGFloa ...

  5. 合(析)取范式转主合(析)取范式--》Java实现

    这次老师布置了如下上机作业,不限语言.思前想后,问了几个大神,说了一堆不知道什么鬼的算法名称.... 经过一番百度,发现Java可以包含库然后使用JavaScript的一些函数,其中eval() 函数 ...

  6. CSS,点击去除虚线边框代码

  7. php中const定义常量

    const 常量 1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5.一个常量是属于一个类的,而不是某个对象的 作用:当某些值是固定不变的,就用const ...

  8. mysql 表格中的数据量过大,修改数据库字段信息会花费很长的时间

    遇到几百万的数据操作遇到很多问题,比如分区,比如分表,sql语句的效率问题.努力学习好mysql优化还是很有必要的.

  9. php 数组 类对象 值传递 引用传递 区别

    一般的数据类型(int, float, bool)不做这方面的解说了 这里详细介绍一下数组和的类的对象作为参数进行值传递的区别 数组值传递 实例代码: <?php function main() ...

  10. scrapy1.1入门用例简介

    今天将scrapy安装成功,测试了下,倒腾了好长时间,才倒腾成功,特此分享. 其实最好的老师就是scrapy的帮助文档,只要把文档看懂,照着做,也就啥都会儿了! 帮助文档下载见http://downl ...