java实现长江游艇俱乐部在长江上设置了n个游艇出租站1,2,3…,n。游客可以在这些游艇出租站用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j=n。试设计一个算法,计算从游艇出租站1到出租站n所需的最少租金。输入描述:第一行表示有n个站点,接下来n-1行是r( i , j)。输出描述:输出从游艇出租站1到出租站3所需的最少租金样例输入: 请输入站数: 3 //站数 请输入从第一站到其他相应各站的租金: 5 15 //从第1站到其他相应各站的租金 请输入从第2站到其他相应各站的租金: 7 //从第2站到其他相应各站的租金样例输出: 最少租金为 12 元
时间: 2024-01-22 22:18:32 浏览: 47
这是一个经典的最短路问题,可以使用Dijkstra算法或者Floyd算法解决。以下是使用Dijkstra算法的Java代码实现:
```java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入站数:");
int n = scanner.nextInt();
int[][] rent = new int[n][n];
for (int i = 0; i < n - 1; i++) {
System.out.printf("请输入从第%d站到其他相应各站的租金:", i + 1);
for (int j = i + 1; j < n; j++) {
rent[i][j] = scanner.nextInt();
rent[j][i] = rent[i][j]; // 因为是无向图,所以要对称赋值
}
}
int[] dist = new int[n];
boolean[] visited = new boolean[n];
Arrays.fill(dist, Integer.MAX_VALUE);
dist[0] = 0; // 从第一站开始
for (int i = 0; i < n; i++) {
int minDist = Integer.MAX_VALUE;
int minIndex = -1;
for (int j = 0; j < n; j++) {
if (!visited[j] && dist[j] < minDist) {
minDist = dist[j];
minIndex = j;
}
}
if (minIndex == -1) {
break; // 所有点都已经访问过了
}
visited[minIndex] = true;
for (int j = 0; j < n; j++) {
if (!visited[j] && rent[minIndex][j] > 0 && dist[minIndex] + rent[minIndex][j] < dist[j]) {
dist[j] = dist[minIndex] + rent[minIndex][j];
}
}
}
System.out.printf("最少租金为 %d 元", dist[n - 1]);
}
}
```
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)