#include<bits/stdc++.h>

using namespace std;

int n,m;//点边
int beginn; int u[],v[],w[];
int first[],nextt[]; long long dis[];
int book[]; int k2=; void clean()
{
for(int i=;i<=n;i++)
{
dis[i]=;
if(i==beginn) dis[i]=; first[i]=-;
} for(int i=;i<=m;i++)
{
nextt[i]=-;
}
} void make_edge(int _a,int _b,int _c)
{
k2++;
u[k2]=_a;
v[k2]=_b;
w[k2]=_c;
nextt[k2]=first[u[k2]];
first[u[k2]]=k2;
} deque<int> q; int main()
{
cin>>n>>m>>beginn; clean(); for(int i=;i<=m;i++)
{
int a,b,c;
cin>>a>>b>>c;
make_edge(a,b,c);
} book[beginn]=;
q.push_front(beginn); while(!q.empty())
{
int now_node=q.front();
book[now_node]=;
q.pop_front(); int k=first[u[now_node]];
while(k!=-)
{
if(dis[v[k]]>dis[u[k]]+w[k])
{
dis[v[k]]=dis[u[k]]+w[k];
if(book[v[k]]==)
{
book[v[k]]=;
if(!q.empty()&&dis[v[k]]<dis[q.front()])
{
q.push_front(v[k]);
}
else q.push_back(v[k]);
}
}
k=nextt[k];
}
} for(int i=;i<=n;i++)
{
if(i==beginn) cout<<"0 ";
else cout<<dis[i]<<" ";
} cout<<endl;
return ;
}

spfa未调过

spfa模版的更多相关文章

  1. 2018年长沙理工大学第十三届程序设计竞赛 E小木乃伊到我家(spfa模版)

    链接:https://www.nowcoder.com/acm/contest/96/E来源:牛客网 小木乃伊到我家 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他 ...

  2. HDU 1688 Sightseeing&HDU 3191 How Many Paths Are There(Dijkstra变形求次短路条数)

    Sightseeing Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  3. 写一下SPFA和迪杰斯特拉的模版。。。第一次写博客,有错请提出哦!

    SPFA的模版 #include<bits/stdc++.h> using namespace std; queue <int> q; typedef pair <int ...

  4. POJ-1860.CurrencyExchange(Spfa判断负环模版题)

    本题思路:每完成一次交换之后交换余额多于原钱数则存在正环,输出YES即可. 参考代码: #include <cstdio> #include <cstring> #includ ...

  5. dijkstra,SPFA,Floyd求最短路

    Dijkstra: 裸的算法,O(n^2),使用邻接矩阵: 算法思想: 定义两个集合,一开始集合1只有一个源点,集合2有剩下的点. STEP1:在集合2中找一个到源点距离最近的顶点k:min{d[k] ...

  6. POJ 3259 Wormholes(SPFA判负环)

    题目链接:http://poj.org/problem?id=3259 题目大意是给你n个点,m条双向边,w条负权单向边.问你是否有负环(虫洞). 这个就是spfa判负环的模版题,中间的cnt数组就是 ...

  7. 费用流&网络流模版

    费用流模版: #include<cstdio> #include<cstring> #include<queue> using namespace std; ;// ...

  8. SPFA【模板】单源最短路径

    题目传送 https://www.luogu.org/problem/show?pid=3371没啥解释,SPFA纯模版qaq//Gang #include<iostream> #incl ...

  9. [NOIP2017赛前复习第二期]复赛考试技巧与模版-普及组

    考试技巧 1.拿到考卷首先通看题目,按自己感觉的难度排序(普及一般是1-2-3-4了~还是相信出题人不会坑我们的2333) 2.一般来说,普及组前两道题比较简单(大水题啊233~),但是通常坑很多,例 ...

随机推荐

  1. SpringBoot入门到出家

    SpringBoot的Actuator监控 Actuator:对系统的监控 是SpringBoot提供的对应用系统监控的集成功能,可以对系统进行配置查看,相关功能统计等,在Spring Cloud中, ...

  2. win 安装composer (详细教程)

    Composer是PHP的一个依赖管理工具,申明项目所依赖的代码库,它会在项目中为你安装,所以在实际项目开发中很方便,那么如何安装呢?今天就与大家分享下. 1首先下载好Composer,文件为exe类 ...

  3. Linq Lambda 中group by多列后count数量的写法

    直接上代码: List<Student> ss = new List<Student>(); Student ss1 = , Age = , Name = " }; ...

  4. 导入数据时出现“SqlDateTime 溢出

    错误出现:导入数据时出现“SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM之间.” 出现这种问题多半是因为你插入或者更 ...

  5. System.Web.Mvc.HttpPostAttribute.cs

    ylbtech-System.Web.Mvc.HttpPostAttribute.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, ...

  6. django2 rest_framework + vue.js + mysql5.6 实现增删改查

    1.安装pymysql,mysqlclient,创建项目django-admin startproject django3 2.在Mysql中创建一个数据库叫django3db,打开项目,修改一下数据 ...

  7. Jumpserver-1.5.2 安装步骤

    Jumpsever 是飞致云旗下的一块开源的堡垒机.在如今都在上云的趋势下,一款堡垒机非常重要. 官网:http://jumpserver.org/ GitHub:https://github.com ...

  8. <Python基础>字典的基本操作

    ''' 小知识 1.字典的键只能是不可变数据类型:int 元组 bool str(可哈希) 字典查找数据会使用二分查找,会先用哈希表将键转化为数字然后进行查找 ''' s = { "name ...

  9. UBOOT把文件写入 NandFlash

    如果把一个传到内存中的文件写入到 Nand Flash 中, 如:新的 uboot.bin, zImage(内核), rootfs 等, 如果做呢?我们可以用 Nand Flash 命令来完成. 但是 ...

  10. 解决ajax请求跨域

    跨域大部分需要通过后台解决,引起跨域的原因: 3个问题同时满足 才可能产生跨域问题,即跨域(协议,主机名,端口号中有一个不同就产生跨域) 下面是解决方法 方法一 // ajax请求跨域 /* *解决a ...