题目链接:http://poj.org/problem?id=1511

有向图有n个点m条边,求点1到其他n-1个点的最短距离和+其他点到点1的最小距离和;

和poj3268一样,但是本题的数据范围较大,只能用spfa+邻接表写,不能用vector;

两个spfa即可;

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <queue>
#include <algorithm>
#include <map>
#include <string>
typedef long long LL;
///#define INF 0x3f3f3f3f
#define INF 100000000000000
#define N 1000100 using namespace std; struct node
{
int v;
LL w;
node(){};
node(int v, LL w):v(v),w(w){}
}; vector<node > G[N];
vector<node > G1[N]; int vis[N], n, m;
LL dist[N]; LL spfa1(int s)
{
for(int i=; i<=n; i++)
dist[i] = INF;
dist[s] = ;
queue<int> Q;
Q.push(s);
memset(vis, , sizeof(vis));
vis[s] = ;
while(!Q.empty())
{
int p = Q.front(); Q.pop();
vis[p] = ;
for(int i=, len=G[p].size(); i<len; i++)
{
node q = G[p][i];
if(dist[q.v] > dist[p] + q.w)
{
dist[q.v] = dist[p] + q.w;
if(!vis[q.v])
{
vis[q.v] = ;
Q.push(q.v);
}
}
}
}
LL ans = ;
for(int i=; i<=n; i++)
ans += dist[i];
return ans;
} LL spfa2(int s)
{
queue<int>Q;
for(int i=; i<=n; i++)
dist[i] = INF;
memset(vis, , sizeof(vis));
vis[s] = ;
dist[s] = ;
Q.push(s);
while(!Q.empty())
{
int p = Q.front(); Q.pop();
vis[p] = ;
for(int i=, len=G1[p].size(); i<len; i++)
{
node q = G1[p][i];
if(dist[q.v] > dist[p] + q.w)
{
dist[q.v] = dist[p] + q.w;
if(!vis[q.v])
{
vis[q.v] = ;
Q.push(q.v);
}
}
}
}
LL ans = ;
for(int i=; i<=n; i++)
ans += dist[i];
return ans;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &n, &m);
for(int i=; i<=n; i++)
{
G[i].clear();
G1[i].clear();
}
for(int i=; i<=m; i++)
{
int u, v; LL w;
scanf("%d %d %I64d", &u, &v, &w);
G[u].push_back(node(v, w));
G1[v].push_back(node(u, w));
}
LL ans = spfa1();
ans += spfa2();
printf("%I64d\n", ans);
}
return ;
}

Invitation Cards---poj1511(spfa)的更多相关文章

  1. 模板C++ 03图论算法 1最短路之单源最短路(SPFA)

    3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...

  2. hdu 1535 Invitation Cards(spfa)

    Invitation Cards Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  3. POJ1511 Invitation Cards —— 最短路spfa

    题目链接:http://poj.org/problem?id=1511 Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Tota ...

  4. Invitation Cards POJ-1511 (spfa)

    题目链接:Invitation Cards 题意: 给出一张有向图,现在要求从1到其他所有的结点的最小路径和与从所有其他结点到1的最小路径和之和. 题解: 求最小路径可以用SPFA来求解.从1到其他结 ...

  5. 最短路(SPFA)

    SPFA是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算. 主要思想是: 初始时将起点加入队列.每次从队列中取出一个元素,并对所有与它相邻的点进行修改,若某个相邻的点修改成功,则将 ...

  6. Bellman-Ford算法及其队列优化(SPFA)

    一.算法概述 Bellman-Ford算法解决的是一般情况下的单源最短路径问题.所谓单源最短路径问题:给定一个图G=(V,E),我们希望找到从给定源结点s属于V到每个结点v属于V的最短路径.单源最短路 ...

  7. sgu 240 Runaway (spfa)

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

  8. codevs 1021 玛丽卡(spfa)

    题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ...

  9. 【POJ】1062 昂贵的聘礼(spfa)

    http://poj.org/problem?id=1062 此题一开始果断想到暴力.. 但是n<=100果断不行. 一看题解,噗!最短路... 构图很巧妙. 每一个物品对应的所需物品相当于一个 ...

随机推荐

  1. BZOJ3825 : [Usaco2014 Nov]Marathon

    不跳过任何点的路程=dis(l,l+1)+dis(l+1,l+2)+...+dis(r-2,r-1)+dis(r-1,r) 要跳过一个点i,则要最小化dis(i,i+2)-dis(i,i+1)-dis ...

  2. jQuery Select操作大集合

    jQuery获取Select选择的Text和Value: 语法解释:  $("#select_id").change(function(){//code...});    //为S ...

  3. HDU 1429 (BFS+记忆化状压搜索)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1429 题目大意:最短时间内出迷宫,可以走回头路,迷宫内有不同的门,对应不同的钥匙. 解题思路: 要是 ...

  4. HTML head 头标签

    HTML head 头部分的标签.元素有很多,涉及到浏览器对网页的渲染,SEO 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性.移动互联网时代,head 头部结 ...

  5. Android下载文件到SD卡

    HttpURLConnection 上传方式: 尝试理解这两种流的区别: InputStreamReader 的读取方式: //创建一个URL对象 URL url = new URL(urlStrin ...

  6. [Cocos2d-x For WP8]MotionStreak拖尾效果

    拖尾效果是指在在游戏中,一个精灵在运动的过程中会留下一个短暂的轨迹效果,在游戏里面如打斗的特效往往会需要用到这种效果来给运动的增加绚丽的效果.那么在Cocos2D-x里面我们可以使用一种内置的拖动渐隐 ...

  7. BZOJ4260: Codechef REBXOR

    Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN.     Output 输出一行包含给定表达式可能的最大值.   S ...

  8. MySQL配置SQL Assistant提示

    以前开发一直使用SQL Server数据库,提示插件采用的就是SQL Assistant,写起脚本来相当有效率.这段时间公司转型要采用MySQL数据库,试用了mysql workbench.mysql ...

  9. 关于实现banner轮换的问题,如何修改

    最近遇到了这样的问题,本来banner都是gif格式的,但是现在要求上传图片格式为jpg时,运用JS实现动画效果,原来的也能用. aspx: <div id="bh" run ...

  10. win7 无法复制粘贴

     win7 无法复制粘贴解决办法 在开始-运行里输入以下命令 regsvr32 shdocvw.dll ,确定,接着出现一个消息框,确定 regsvr32 oleaut32.dll,确定,接着出现一个 ...