非负权单源最短路(c++题解)

题目描述

给一个 n个点 m条边的无向图,求 s到 t的最短路。

输入格式

第一行四个由空格隔开的整数 、、、。

之后的 行,每行三个正整数 、、,表示一条从 到 长度为 的边。

输出格式

一个整数表示从 到 的最短路长度。数据保证至少存在一条道路。

样例

样例输入

复制代码
复制7 11 5 4
2 4 2
1 4 3
7 2 2
3 4 3
5 7 5
7 3 3
6 1 1
6 3 4
2 4 3
5 6 3
7 2 1

样例输出

复制代码
复制7

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z,q,p;
int a[2505][2505];
int dist[2505];
bool dis[100005];
int f(){
	memset(dist,0x3f,sizeof(dist));
	dist[q]=0;
	for(int i=1;i<=n;i++){
		int t=-1;
		for(int j=1;j<=n;j++){
			if(!dis[j]&&(t==-1||dist[j]<dist[t]))t=j;
		}
		dis[t]=true;
		for(int j=1;j<=n;j++){
			if(a[t][j]!=0)
			dist[j]=min(dist[j],dist[t]+a[t][j]);
		}
	} 
	return dist[p];
}
int main(){
	cin>>n>>m>>q>>p;
	for(int i=1;i<=m;i++){
		cin>>x>>y>>z;
		a[x][y]=z;
		a[y][x]=z;
	}
	cout<<f();
}
相关推荐
多弗朗皮卡丘2 小时前
C++ stack和queue
开发语言·c++·deque·queue·stack·容器适配器
lengxuenong2 小时前
枚举及其优化学习手册
c++·学习·算法·青少年编程
小O的算法实验室2 小时前
IEEE TAI,RoCo:基于角色的LLM协作实现自动启发式设计
算法
SelectDB技术团队2 小时前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
小范的技术工坊2 小时前
大模型蒸馏
人工智能·算法·数据挖掘·大模型
Benny_Tang2 小时前
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解
c++·算法
kiracrimson2 小时前
希尔排序:让插入排序不再怕逆序
数据结构·算法·排序算法
Logic1013 小时前
C语言/数据结构位运算题解:异或XOR找出星球探险中的“独特能量石“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
垆边人似月.3 小时前
华为机考题:最小代价爬楼梯
c语言·c++
可涵不会debug3 小时前
C++ std::bind 实战教程:线程池、回调场景全覆盖
linux·开发语言·c++