czl蒟蒻的模板库1——Dijkstra
来源:互联网 发布:java 打印byte数组 编辑:程序博客网 时间:2024/06/06 01:59
#include <bits/stdc++.h>using namespace std;const int M=500005;const int N=100005;typedef long long ll;typedef pair<int,int>P;#define fi first#define se secondstruct edge{ int to; int cost; edge(int to,int cost):to(to),cost(cost) {}};inline void read(int &x) { x=0;int f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();} while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); x*=f;}vector<edge>e[M];int n,m;bool vis[N];int dis[N];int S;void Dj(){ memset(vis,1,sizeof vis); for(int i=1;i<=n;i++) { dis[i]=2147483647; } priority_queue<P,vector<P>,greater<P> >Q; dis[S]=0; Q.push(P(0,S)); while(!Q.empty()) { P p=Q.top(); Q.pop(); int u=p.se; if(!vis[u])continue; vis[u]=0; for(int i=0;i<(int)e[u].size();i++) { edge E=e[u][i]; if(dis[E.to]>dis[u]+E.cost) { dis[E.to]=dis[u]+E.cost; Q.push(P(dis[E.to],E.to)); } } }}int main(){ read(n); read(m); read(S); for(int i=1;i<=m;i++) { int s,t,c; read(s); read(t); read(c); e[s].push_back(edge(t,c)); } Dj(); for(int i=1;i<=n;i++) { printf("%d ",dis[i]); } return 0;}
阅读全文
0 0
- czl蒟蒻的模板库1——Dijkstra
- czl蒟蒻的模板库2——FASTIO
- czl蒟蒻的模板库3——KMP
- czl蒟蒻的模板库4——Tarjan
- czl蒟蒻的模板库5——线段树
- czl蒟蒻的模板库6——倍增LCA
- czl蒟蒻的模板库7——最长公共子序列
- czl蒟蒻的模板库8——单调队列
- czl蒟蒻的XJOI类型训练1
- czl的知识点整理1——堆
- czl蒻蒟的OI之路
- czl蒻蒟的OI之路2
- czl蒻蒟的OI之路3
- czl蒻蒟的OI之路4
- czl蒻蒟的OI之路5
- czl蒻蒟的OI之路6
- czl蒻蒟的一周总结(9.4~9.10)
- czl蒻蒟的OI之路7
- Python学习笔记(3)- 列表
- javascript async promise return 测试
- mysql 触发器的使用
- SpringMVC 配置 myBatis 简述
- Maven向本地仓库导入jar包
- czl蒟蒻的模板库1——Dijkstra
- Caused by: java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer c
- 用Mathematica爬取我的百度经验目录
- 并查集问题
- Neural Networks and Deep Learning之中文翻译-关于本书
- Android中添加两个(多个)FileProvider节点问题
- 11.9考试爆炸记
- python库-numpy
- android-uevent 简记