首页 > 其他分享 >P3371 【模板】单源最短路径

P3371 【模板】单源最短路径

时间:2023-11-24 13:26:17浏览次数:38  
标签:10 int 样例 单源 leq dis 模板 P3371

【模板】单源最短路径(标准版)

题目背景

2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路。

然后呢?

\(100 \rightarrow 60\);

\(\text{Ag} \rightarrow \text{Cu}\);

最终,他因此没能与理想的大学达成契约。

小 F 衷心祝愿大家不再重蹈覆辙。

题目描述

给定一个 \(n\) 个点,\(m\) 条有向边的带非负权图,请你计算从 \(s\) 出发,到每个点的距离。

数据保证你能从 \(s\) 出发到任意点。

输入格式

第一行为三个正整数 \(n, m, s\)。
第二行起 \(m\) 行,每行三个非负整数 \(u_i, v_i, w_i\),表示从 \(u_i\) 到 \(v_i\) 有一条权值为 \(w_i\) 的有向边。

输出格式

输出一行 \(n\) 个空格分隔的非负整数,表示 \(s\) 到每个点的距离。

样例 #1

样例输入 #1

4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4

样例输出 #1

0 2 4 3

提示

样例解释请参考 数据随机的模板题

\(1 \leq n \leq 10^5\);

\(1 \leq m \leq 2\times 10^5\);

\(s = 1\);

\(1 \leq u_i, v_i\leq n\);

\(0 \leq w_i \leq 10 ^ 9\),

\(0 \leq \sum w_i \leq 10 ^ 9\)。

本题数据可能会持续更新,但不会重测,望周知。

#define int long long
using namespace std;
const int N=1e4+10;
const int inf=2147483647;
vector<pair<int,int>>a[N];
int dis[N],vis[N];
int n,m,s;
void BFS(){
	priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>q;
	dis[s]=0;
	q.push({0,s});
	while(q.size()){
		auto u=q.top();
		int d=u.first;
		int v=u.second;
		q.pop();
		if(vis[v])continue;
		for(auto c:a[v]){
			if(dis[v]+c.second<dis[c.first]){
				dis[c.first]=dis[v]+c.second;
				q.push({dis[c.first],c.first});
			}
		}
		vis[v]=1;
	}
}
signed main(){
	cin>>n>>m>>s;
	for(int i=1;i<=n;i++){
		dis[i]=inf;
	}
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		a[u].push_back({v,w});
	}
	BFS();
	for(int i=1;i<=n;i++){
		cout<<dis[i]<<" ";
	}
	return 0;
}

标签:10,int,样例,单源,leq,dis,模板,P3371
From: https://www.cnblogs.com/yufan1102/p/17853510.html

相关文章

  • Excel导入sql语句模板,解决转换时间戳问题
    EXCEL导入MySQL生成sql语句解决时间戳问题生成普通sql语句解决时间戳问题这里使用’"&TEXT(E1,“yyyy-mm-ddhh:mm:ss”)&"’解决excel表中时间戳问题的生成使用str_to_date(’"&TEXT(E1,“yyyy-mm-ddhh:mm:ss”)&"’,’%Y-%m-%d%T’))解决插入mysql中的问题="insertintoxx......
  • cad模板
    1、制作一个cad模板保存为块2、打开设计中心3、找到模板位置——右键创建选项面板 4、打开工具选项面板  5、直接点击模板后点击制图空间空白处即可使用 ......
  • Service 服务详解 及自定义服务模板
    文章目录1、服务简介2、服务的生命周期1)Service的启动停止2)、服务的生命周期的方法3、使用startService启动后服务的生命周期1)、文件结构2)activity_main.xml文件3)、myService自定义服务文件4)、MainActivity文件5)、AndroidManifest.xml文件6)、打印的相关log5、使用bindS......
  • interface 接口回调简单模板
    文章目录1、功能简介2、MainActivity文件3、Message文件4、log打印1、功能简介方便在不同类,不同activity之间进行数据传递文件结构:Mainactvity向Message里面传数据,Message处理后,通过接口将处理过后的数据返回到MainActivity2、MainActivity文件packagecom.example.ubun......
  • recycleView 简单模板框架
    文章目录1、功能简介2、文件结构3、build.gradle(Module:app)4、activity_main.xml文件5、recycleview_item.xml6、RecycleViewAdapter文件7、StudentData文件8、MainActivity文件1、功能简介实现recycle和自定义item的适配读取姓名2、文件结构3、build.gradle(Module:......
  • java-EasyExcel模板导出
    前言: 需求:根据自定义模板导出Excel,包含图片、表格,采用EasyExcel 提示:EasyExcel请使用3.0以上版本,对图片操作最重要的类就是WriteCellData<Void>如果你的easyexcel没有这个类,说明你的版本太低,请升级到3.0以上<dependency><groupId>com.alibaba</groupId><ar......
  • 模板渲染成标签还是原封不动的字符串 标签(for,for ... empty,if,with,csrf_token)
    模板渲染成标签还是原封不动的字符串:#xss攻击:是什么,如何预防?django已经处理了xss攻击,它的处理原理是什么fromdjango.utils.safestringimportmark_safelink1='<ahref="https://www.baidu.com">点我<a>'link2=mark_safe(link1){link1|safe}  标签:1{%标签名%}......
  • 模板语法之句点符的深度查询
     views.py:defindex(request):num=10ss='lqzishandsome'b=Falsell=[1,2,43,{'name':'egon'}]dic={'name':'lqz','age':18}deftest():print('我是tes......
  • django模板使用的两种方式 模板语法之变量
    模板语法之变量DTL:DjangoTemplateLanguage1模板中使用{{python变量}}############views.pydefindex(request):num=10ss='lqzishandsome'b=Falsell=[1,2,43]dic={'name':'lqz','age':18}deftes......
  • 【模板】可持久化线段树 2
    【模板】可持久化线段树2题目背景这是个非常经典的可持久化权值线段树入门题——静态区间第$k$小。数据已经过加强,请使用可持久化权值线段树。同时请注意常数优化。题目描述如题,给定$n$个整数构成的序列$a$,将对于指定的闭区间$[l,r]$查询其区间内的第$k$小值。输......