最短路径C语言

news/2025/2/26 3:52:39

问题描述
现已知有N(N<=10)个城市M(M<=30)条路,保证每个城市之间有路,单向到达,每个城市之间的路程不一样,求任意两个城市之间的最短路程
样例输入
4 8
1 2 2
1 3 6
1 4 4
2 3 3
3 1 7
3 4 1
4 1 5
4 3 12
样例输出
0 2 5 4
9 0 3 4
6 8 0 1
5 7 10 0
程序代码:

#include<stdio.h>
int a[200][200];
int main()
{
	int i,n,j,k,a1,b1,c1,m;
	int inf=999999;
	scanf("%d%d",&n,&m);
	//初始化各个城市之间的路程
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++){
			if(i==j)
				a[i][j]=0;//若为同一个地点则值为零
			else
				a[i][j]=inf;//否则置为最大的
		}
		//读入每个城市之间的距离
	for(i=1;i<=m;i++){
		scanf("%d%d%d",&a1,&b1,&c1);
		a[a1][b1]=c1;
	}		
	for(k=1;k<=n;k++)
		for(i=1;i<=n;i++)
			for(j=1;j<=n;j++)
				if(a[i][j]>a[i][k]+a[k][j])//若从i到j的距离比从i到k再从k到j的距离大就把原来的距离进行更新
					a[i][j]=a[i][k]+a[k][j];
	//输出各个城市之间最短的路程
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			printf("%d ",a[i][j]);
		printf("\n");
	}	
	return 0;
}

http://www.niftyadmin.cn/n/709959.html

相关文章

万能搜索中递归的理解以及四种走法枚举的理解

一开始在理解这个枚举的四种走法时&#xff0c;不知道递归加在这个函数中怎么运行的&#xff0c;也就是不知道递归的具体过程&#xff0c;和每次怎么行走的。经过一段时间的理解后现在可算有点眉目了。 首先递归的每次过程这个函数都会在从新运行一次&#xff0c;循环也是从头开…

[UWP]分享一个基于HSV色轮的调色板应用

原文:[UWP]分享一个基于HSV色轮的调色板应用1. 前言 上一篇文章介绍了HSV色轮&#xff0c;这次分享一个基于HSV色轮的调色板应用&#xff0c;应用地址&#xff1a;ColorfulBox - Microsoft Store 2. 功能 ColorfulBox是Adobe 色轮的简单模仿&#xff0c;只实现了最基本的功能&a…

MySQL 主从同步 、 MySQL 读写分离

一、mysql主从同步 二、数据读写分离三、MySQL优化一、mysql主从同步 1.1 主从同步介绍&#xff1f;从库服务器自动同步主库上数据&#xff08;被客户端访问的数据库服务器做主库服务器&#xff09;1.2 结构 54 55 systemctl start mysqld systemctl start mys…

快排的理解

在啊哈算法这本书上写的快排我当时看的时候看不太懂&#xff0c;于是就根据他写的代码就带入一些数据去运行它的代码最后有了很大的收获&#xff0c;在运行的过程中我发现他现以最左边的数为基准数&#xff0c;然后用循环依次从最左边和最右边寻找在最左边找比基准数大的数&…

计算与推断思维 翻译完成

面向&#xff08;未来的&#xff09;数据科学家的入门课来咯&#xff5e; 前一半讲 Python 编程&#xff0c;后一半讲统计学基本概念并用 Python 模拟。 Github&#xff1a;https://github.com/Kivy-CN/data8-textbook-zh Gitee&#xff1a;https://gitee.com/wizardforcel/dat…

用Vue搭建一个应用盒子(一):todo-list

最近在研究vue的相关知识&#xff0c;最好的学习方法莫过于自己开发一个SPA&#xff0c;这样带着问题来学习&#xff0c;进步自然飞速。于是边查边写差不多花了2周写完了一个todo-list&#xff0c;功能不够完备&#xff0c;但是麻雀虽小&#xff0c;却也是五脏俱全&#xff0c;…

idea中解决Error:java: Compilation failed: internal java compiler error的问题

项目中&#xff0c;使用gradle做项目构建&#xff0c;当我们想更改JDK的版本时&#xff0c;报以下错误&#xff1a; Information:Using javac 1.8.0_111 to compile java sourcesInformation:java: javacTask: 源发行版 1.8 需要目标发行版 1.8Information:java: Errors occurr…

找钱问题

题目描述 和尚在山上又耐不住寂寞了&#xff0c;嘴馋的要命&#xff0c;于是就拿了100块钱偷偷的下山买肉吃。和尚最爱吃红烧肘子了&#xff0c;但是和尚不会算数&#xff0c;请你帮和尚算算老板应该找他多少钱。并且和尚很懒&#xff0c;非得要求老板找他钱的张数是最少的。 …