首页 > 其他分享 >【头歌实训:单源最短路径】

【头歌实训:单源最短路径】

时间:2024-10-24 19:21:28浏览次数:7  
标签:int t2 单源 t3 头歌 book 实训 t1 dis

头歌实训:单源最短路径
给一个n(1 ≤ n ≤ 2500) 个点 m(1 ≤ m ≤ 6200) 条边的无向图,求 s 到 t 的最短路。

文章目录

输入格式:

第一行四个由空格隔开的整数 n、m、s、t。

之后的 m 行,每行三个正整数 si 、ti 、wi(1 ≤wi≤ 1 0 9 10^{9} 109),表示一条从si到ti长度为wi的边。

输出格式:

一个整数,表示从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

注意:

两个顶点之间可能存在多条直接相连的道路。

源代码:

#include <bits/stdc++.h>
using namespace std;
#include<iostream>
#define  N 3000
int e[N][N],dis[N],book[N];
int main(){
	
	int i,j,n,m,t1,t2,t3,u,v,min,s,t;
	int inf=99999999;

	cin>>n>>m>>s>>t;

//初始化
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(i==j) e[i][j]=0;
				else e[i][j]=inf;
		}
	}
//读入边
	for(i=1;i<=m;i++)
	{
		cin>>t1>>t2>>t3;
		e[t1][t2]=t3;
		e[t2][t1]=t3;	//去掉该向变成有向图
	}

//初始化dis数组,这里1号顶点到其余各个顶点的初始路程
	for(i=1;i<=n;i++){
		dis[i]=e[s][i];
	}
//book数组初始化
	for(i=1;i<=n;i++)
		book[i]=0;

	book[i]=1;
//Dijkstra算法核心
	for(i=1;i<=n-1;i++){
		min=inf;	//找到离1号顶点最近的顶点
		for(j=1;j<=n;j++){

			if(book[j]==0 && dis[j]<min){
				min=dis[j];
				u=j;
			}

		}
		book[u]=1;

		for(v=1;v<=n;v++){
			if(e[u][v]<inf){

				if(dis[v]>dis[u]+e[u][v])
					dis[v]=dis[u]+e[u][v];
			}
		}
	}
	//输出结果
		cout<<dis[t];
		
	return 0;
}

标签:int,t2,单源,t3,头歌,book,实训,t1,dis
From: https://blog.csdn.net/guang_Lee/article/details/143217035

相关文章

  • 【头歌实训:邻接表存储图的广度优先遍历】
    头歌实训:邻接表存储图的广度优先遍历文章目录任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:编程要求测试说明输入格式:输出格式:样例输入:样例输出:源代码:任务描述相关知识邻接表存储图图的遍历广度优先遍历过程:算法设计思路:......
  • springboot+vue安卓实训教学管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,智能手机已成为人们日常生活中不可或缺的一部分。在教育领域,安卓平台因其广泛的用户基础和强大的应用开发能力,成为构建实训教学管理系统的理想选择。传统的实训教学管理方式往往依赖于纸质记录或PC端软件......
  • 精品打地鼠实训教程
    打地鼠一.学习目标复习布局元素复习元素操作掌握函数掌握时钟二.准备工作兵所看:图三.先静后动3.1html页面<divclass="score">剩余时间(s):<spanid="gametime">20</span> <buttontype="button"onclick='start()'>开始</b......
  • 头歌测试 单词分割
    任务描述本关任务:将一段英语字符串进行单词分割。相关知识为了完成本关任务,你需要掌握:如何将字符串进行分割。String.split()拆分字符串lang包String类的split()方法publicString[]split(Stringregex)publicString[]split(Stringregex,intlimit)//limit参数控制......
  • NOI提高级 图论算法:单源次短路
    DIJ(单源次短路)-TwoPaths-HDU6181DIJ(单源次短路)-TwoPaths-HDU6181-CSDN博客单源次短路(P2829大逃离)单源次短路(P2829大逃离)-CSDN博客单源次短路算法学习笔记单源次短路算法学习笔记-Wiueh_Plus-博客园次短路及次短路计数次短路及次短路......
  • P4779 【模板】单源最短路径(标准版)
    堆优化版:通过定义一个最小堆来实现普通版本中的查找操作点击查看代码#include<iostream>#include<stack>#include<cmath>#include<algorithm>#include<set>#include<vector>#include<climits>#include<string.h>#include<map>#in......
  • 论文分享---CVPR2024:用于单源域泛化目标检测的无偏 Faster R-CNN
     论文地址https://arxiv.org/pdf/2405.15225简介:此论文由刘亚静,周世军,刘希尧,郝春辉,范宝杰,田建东,中国科学院沈阳自动化研究所机器人国家重点实验室、中国科学院机器人与智能制造研究所、中国科学院大学、南京邮电大学在CVPR2024上发表。摘要单源域泛化(SDG)物体检测是一项......
  • 基于岗课赛证融合的移动应用开发实训室建设方案
    一、引言在经济与社会的快速发展背景下,5G通信技术正迅速成为主流,这导致了对移动应用开发专业人才的需求急剧上升。作为培养创新技术人才的先锋,高等职业院校不仅需要强化移动应用开发课程的建设,还必须致力于构建一流的移动应用开发实训环境。本文将从四个关键方面,详细探讨......
  • [算法] 次小生成树与单源次短路
    发现NOIP大纲里有这个,所以写一写次小生成树分为严格次小生成树和非严格次小生成树,前者要求此生成树的权值和严格大于最小生成树,后者是非严格大于;对于这个问题,我们首先求出原图的最小生成树,然后发现次小生成树是最小生成树只删一条边,然后加一条边得到的,于是我们可以枚举要加的......
  • 医学数据分析实训 项目八 医疗保险欺诈行为分析
    文章目录综合实践一:医疗保险欺诈行为分析一分析目标二实现步骤三数据准备四特征工程五模型训练六性能度量七提交要求代码块三数据准备4特征工程六、模型训练和性能度量综合实践一:医疗保险欺诈行为分析实践项目概述本实践项目的数据集包括:投保人信息(Poli......