非负权单源最短路(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();
}
相关推荐
ChaoZiLL3 分钟前
二叉树经典例题
数据结构·算法
不正经学生21 分钟前
C语言字符串函数进阶:安全版函数 + 错误处理 + 子串查找
c语言·开发语言·c++·算法·面试
三克的油37 分钟前
算法基础-1
数据结构·c++·算法
oort12339 分钟前
OortCodex 是奥尔特云 OortCloudSmart 推出的国产化工程化 AI 编码 Agent(奥尔特云编码智能体)
大数据·人工智能·算法
TheBestRucy40 分钟前
基于Dify的旅游攻略&王者荣耀攻略智能助手项目
服务器·开发语言·人工智能·python·算法·旅游
你想知道什么?43 分钟前
朴素贝叶斯算法-学习笔记
笔记·学习·算法
zlinear数据采集卡1 小时前
ZLinear产品线全景对比:D223 vs DABL7606 vs DABL-G511选型指南
arm开发·嵌入式硬件·算法·fpga开发·开源
数模竞赛Paid answer1 小时前
2026年华东杯数学建模C题收益率预测问题解题全过程文档及程序
算法·数学建模·数据分析·华东杯
一米阳光86611 小时前
软考(中级)软件设计师核心笔记(8)数据结构——树与二叉树
数据结构·笔记·职场发展·软考·软件设计师·中级职称
依然鸣1 小时前
PTA团体程序设计天梯赛L2真题讲解L2-005-008
开发语言·数据结构·c++·算法·深度优先·pat考试·图论