编程练习---百度编程题(商队问题)

本文介绍了一个王国中的运输问题,G商队需要计算从一个城市到另一个城市不休息时的最大运输费用。通过给定的城市间高速公路长度,使用算法找出任意两城市间的最长路径,并据此计算最大运输费用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


很久以前,某王国拥有 n 个大城市,为了方便交通,国王下令修建了大量的用于连接首都和其他各大城市高速路。

为节省经费,王国采用了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。并且,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。

G商队是王国重要的运输商队,他们奔波于各大城市之间,为王国的人们运输商品,实现长途贸易。所以,从一个城市马不停蹄地到另一个城市成了G商队最常做的事情。他们有一个钱袋,用于存放往来城市间的运输费。

在运输过程中G商队发现,如果不在某个城市停下来休整,在连续行进过程中,他们所花的运输费与他们已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他们花费的运输费是x+10这么多。也就是说走1千米花费11,走2千米要花费23。

G商队想知道:他们从某一个城市出发,如果中间不休息,到达另一个城市,所有可能花费的运输费中最多是多少呢?

输入:

输入的第一行包含一个整数n,表示包括首都在内的王国的城市数

城市从1开始依次编号,1号城市为首都

接下来n-1行,描述王国的高速路(王国的高速路一定是n-1条)

每行三个整数Pi, Qi, Di,表示城市Pi和城市Qi之间有一条高速路,长度为Di千米。输入城市数(〈10),长度(〈=100)

输出:

输出一个整数,表示G商队最多花费的运输费是多少

样例输入:

5

1 2 2

1 3 1

2 4 5

2 5 4

样例输出:

135

public class Wangguo{

	public static void main(String[] args)
	{
		int result=0;
		int a[][] = new int[6][6];
		int b[][] = new int[6][6];
		a[1][2] = 2;
		a[1][3] = 1;
		a[2][4] = 5;
		a[2][5] = 4;
		a[2][1] =2;
		a[3][1] =1;
		a[4][2] =5;
		a[5][2] =4;
		
		for(int k=1;k<6;k++)
		{
		for(int i=1;i<6;i++)
		{
			
			for(int j=1;j<6;j++)
			{
				
				if(i!=j && a[i][k]>0 && a[k][j]>0)
				b[i][j] = a[i][k]+a[k][j];

			}
		}
		}
		
		
		for(int i=1;i<6;i++)
			for(int j=1;j<6;j++)
			{
				if(b[i][j]>result)
					result = b[i][j];
			}
		
		System.out.println(result);
	
		
	}
	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值