关于spfa它已经死了

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5,maxm = 1e6+5,inf = 1e9;
priority_queue < pair<int,int> >q;
int d[maxn],p[maxn],begin[maxn],to[maxm],next[maxm],w[maxm];
int n,m,e,s;
inline int read(){
int x = 0,k = 1;char ch = getchar();
while(ch < '0' || ch > '9'){if(ch == '-')k = -1;ch = getchar();}
while(ch >= '0' && ch <= '9')x = (x<<3)+(x<<1)+(ch^48),ch = getchar();
return x*k;
}
inline void add(int x,int y,int z){
next[++e] = begin[x];
begin[x] = e;
to[e] = y;
w[e] = z;
}
inline void init(){
n = read();
m = read();
s = read();
for(int i = 1,x,y,z;i <= m;i++){
x = read();
y = read();
z = read();
add(x,y,z);
}
}
inline void out(){
for(int i = 1;i <= n;i++)
printf("%d%c",d[i] == inf ? 2147483647 : d[i],i == n ? '\n' : ' ');
}
inline void spfa(){
for(int i = 1;i <= n;i++)d[i] = inf;
d[s] = 0;
q.push(make_pair(0,s));
while(!q.empty()){
int tmp = q.top().second;
q.pop();
if(p[tmp])continue;
p[tmp] = 1;
for(int i = begin[tmp];i;i = next[i])
if(d[to[i]] > d[tmp]+w[i])
d[to[i]] = d[tmp]+w[i],q.push(make_pair(-d[to[i]],to[i]));
}
}
int main(){
init();
spfa();
out();
return 0;
}

  

最短路-spfa的更多相关文章

  1. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  2. L - Subway(最短路spfa)

    L - Subway(最短路spfa) You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. In ...

  3. ACM/ICPC 之 最短路-SPFA+正逆邻接表(POJ1511(ZOJ2008))

    求单源最短路到其余各点,然后返回源点的总最短路长,以构造邻接表的方法不同分为两种解法. POJ1511(ZOJ2008)-Invitation Cards 改变构造邻接表的方法后,分为两种解法 解法一 ...

  4. POJ 1847 Tram --set实现最短路SPFA

    题意很好懂,但是不好下手.这里可以把每个点编个号(1-25),看做一个点,然后能够到达即为其两个点的编号之间有边,形成一幅图,然后求最短路的问题.并且pre数组记录前驱节点,print_path()方 ...

  5. 【POJ】3255 Roadblocks(次短路+spfa)

    http://poj.org/problem?id=3255 同匈牙利游戏. 但是我发现了一个致命bug. 就是在匈牙利那篇,应该dis2单独if,而不是else if,因为dis2和dis1相对独立 ...

  6. 【wikioi】1269 匈牙利游戏(次短路+spfa)

    http://www.wikioi.com/problem/1269/ 噗,想不到.. 次短路就是在松弛的时候做下手脚. 设d1为最短路,d2为次短路 有 d1[v]>d1[u]+w(u, v) ...

  7. POJ 1511 最短路spfa

    题很简单 就是有向图中求给出的源点到其余所有点的最短路的和与其余所有点到源点的最短路之和 一开始以为dij对于正权图的单源最短路是最快的 写了一发邻接表的dij 结果超时 把所有的cin改成scanf ...

  8. Layout---poj3169(差分约束+最短路spfa)

    题目链接:http://poj.org/problem?id=3169 有n头牛站成一排 在他们之间有一些牛的关系比较好,所以彼此之间的距离不超过一定距离:也有一些关系不好的牛,希望彼此之间的距离大于 ...

  9. LightOJ 1074 Extended Traffic (最短路spfa+标记负环点)

    Extended Traffic 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/O Description Dhaka city ...

  10. POJ 3835 &amp; HDU 3268 Columbus’s bargain(最短路 Spfa)

    题目链接: POJ:http://poj.org/problem?id=3835 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=3268 Problem ...

随机推荐

  1. c# throw和throw ex

    c# throw和throw ex 我们在日常开发当中,经常会用到exception异常,并且我们会在exception中的catch块中throw exception,例如: static void ...

  2. Dictionary实现先进先出代替Queue

    Queue删除其中一个元素比较麻烦,这是一个重码校验的类,主要处理是用Dictionary代替Queue了.目前使用下来还算稳定.代码贴出来给有缘人参考. /// <summary> // ...

  3. 基于Grunt构建一个的项目

    没有搭建环境的,请参考<Grunt自动化构建环境搭建 >,搭建完成后 新建一个项目目录,这里建立一个“Demo”目录 运行CMD,并进入这个目录,运行 npm install grunt ...

  4. linux安装tomcat部署web项目

    我用的是如下图的两个软件,连接linux服务器. 其中WinSCp是传输文件用的,SecureCRT是用来输入命令的. 1.复制tomcat到指定目录(可复制到你想要的目录下),命令如下: cp /路 ...

  5. PS调出唯美紫蓝色天空背景女生照片

    教你学会用PS给照片叠加素材,达到想要的效果. 首先,作为摄影在拍摄前,我们要明白自己拍摄主题与目的,希望后期达到的效果,尤其是当我们需要后期叠加素材时,脑海中自然而然会有大致画面,就以“夏日”这组为 ...

  6. PowerShell-自定义函数(五)-参数互斥:ParameterSetName

    转自:https://blog.51cto.com/38088444/1920978 这一篇我们来讲一下参数的互斥,何谓参数互斥呢.用九胖风格的话说就是互怼,有我没你,有你没我. 例如我们为一个Pin ...

  7. 开发神器之PHPstorm配置及使用

    之前文章对于PHPstorm有了简单的介绍,作为一名合格的PHPer,一定要定制一个适合自己的IDE,然后开始我们的路途吧... 1. 为不同的项目选定PHP版本 我们经常会遇到这样的场景,不同的项目 ...

  8. 【win7】安装开发环境

    1. 通用版主分支合并到v3,并删除data下无用文件或添加data有用文件 2. xampp php7与php5切换 是否可以行? 换phpstudy 默认支持php 32位,而我们要下载支持64的 ...

  9. Linux(Ubuntu)使用日记(三)------git安装使用

    1. 安装 首先,确认你的系统是否已安装git,可以通过git指令进行查看,如果没有,在命令行模式下输入sudo apt-get install git命令进行安装. 2.  配置 git confi ...

  10. U盘文件被隐藏

    转自https://blog.csdn.net/zichen_ziqi/article/details/80171891 文章原地址:http://www.uqidong.com/help/1625. ...