链接:

http://poj.org/problem?id=1511

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82829#problem/J

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
using namespace std; #define N 1000005
#define oo 0x3fffffff struct node
{
int a, b, next;
long long p;
}s1[N], s[N]; int n, m, head[N];
long long dis[N];
bool vis[N]; void Add(int a, int b, long long p, int k)
{
s1[k].a=a;
s1[k].b=b;
s1[k].p=p;
s1[k].next=head[a];
head[a]=k;
} long long spfa()
{
queue<int>Q;
Q.push();
vis[]=true; for(int i=; i<=n; i++)
dis[i]=oo;
dis[]=; while(Q.size())
{
int i = Q.front(); Q.pop();
vis[i] = false; for(int j=head[i]; j != ; j = s1[j].next)
{
int a = s1[j].a, b = s1[j].b;
int p = s1[j].p; if(dis[a]+p < dis[b])
{
dis[b] = dis[a] + p; if(vis[b] == false)
{
Q.push(b);
vis[b] = true;
}
}
}
} long long sum=; for(int i=; i<=n; i++)
sum += dis[i];
return sum;
} int main()
{
int t;
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &m); int i; memset(head, , sizeof(head));
memset(s, , sizeof(s));
memset(s1, , sizeof(s1)); for(i=; i<=m; i++)
{
scanf("%d%d%I64d", &s[i].a, &s[i].b, &s[i].p);
Add(s[i].a, s[i].b, s[i].p, i);
} long long ans = spfa(); memset(head, , sizeof(head));
for(i=; i<=m; i++)
Add(s[i].b, s[i].a, s[i].p, i); ans += spfa();
printf("%I64d\n", ans);
}
return ;
}

(最短路 SPFA)Invitation Cards -- poj -- 1511的更多相关文章

  1. Invitation Cards POJ - 1511 (双向单源最短路)

    In the age of television, not many people attend theater performances. Antique Comedians of Malidine ...

  2. Invitation Cards POJ 1511 SPFA || dij + heap

    http://poj.org/problem?id=1511 求解从1去其他顶点的最短距离之和. 加上其他顶点到1的最短距离之和. 边是单向的. 第一种很容易,直接一个最短路, 然后第二个,需要把边反 ...

  3. Invitation Cards POJ - 1511

    题目链接:https://vjudge.net/problem/POJ-1511 思路:题目意思就是,从1出发到所有城市,再从所有城市回到1的最短时间. 那么我们只要正跑一次图,然后反向存边,再跑一次 ...

  4. SPFA算法(2) POJ 1511 Invitation Cards

    原题: Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 31230   Accepted: ...

  5. (最短路 spfa)Wormholes -- poj -- 3259

    http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions ...

  6. POJ 1511 Invitation Cards (最短路spfa)

    Invitation Cards 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/J Description In the age ...

  7. POJ 1511 Invitation Cards (spfa的邻接表)

    Invitation Cards Time Limit : 16000/8000ms (Java/Other)   Memory Limit : 524288/262144K (Java/Other) ...

  8. poj 1511 Invitation Cards(最短路中等题)

    In the age of television, not many people attend theater performances. Antique Comedians of Malidine ...

  9. POJ 1511 Invitation Cards(单源最短路,优先队列优化的Dijkstra)

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 16178   Accepted: 526 ...

随机推荐

  1. Web验证方式(1)--Http Basic Authentication

    Http Basic Authentication是HTTP协议中定义的Web系统中的验证方式.参考wiki 主要的实现机制如下: 1. 用户通过浏览器匿名访问web资源. 2. web服务器检测到w ...

  2. MySQL建表规范与常见问题 (go)

    一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...

  3. mkdir -p 多层次目录创建

    mkdir的-p选项允许你一次性创建多层次的目录,而不是一次只创建单独的目录.例如,我们要在当前目录创建目录Projects/a/src,使用命令 1 mkdir -p Project/a/src 而 ...

  4. VS2017开发Linux平台上的程序

    重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux.发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了L ...

  5. Java 数组类型转字符串类型

    Java手册 String public String() 初始化一个新创建的 String 对象,使其表示一个空字符序列.注意,由于 String 是不可变的,所以无需使用此构造方法. String ...

  6. [Java.web]JSTL 使用

    <%@ page import="cn.itcast.domain.Person"%> <%@ page language="java" im ...

  7. Hive新功能 Cube, Rollup介绍

    说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...

  8. VS2017如何配置openGL环境

    转自:http://blog.csdn.net/qq_26982531/article/details/62056913 这里着重介绍vs2017配置openGL环境与以前版本的不同之处:       ...

  9. 【POJ】2096 Collecting Bugs(数学期望)

    题目 传送门:QWQ 分析 数学期望 用$ dp[i][j] $表示发现了在$ j $个子系统里面发现了$ i $个bug到$ s $个子系统里面发现了$ n $个bug需要的期望天数. $ dp[0 ...

  10. [Delphi] 调用ocx

    function RegisterDllServer(FileName: string): boolean; var nDllAddr: integer; bstr: string; ProcAddr ...