果然是道看你语文如何的题
矩阵其实是这样的:a[i][j]表示i到j的路程,其中1<=i<=n,i<j<=n
因为题目说“在下游的任何一个游艇出租站归还游艇”所以没有回头路……
然后就是Floyd了
#include<iostream>
#include<string.h>
using namespace std;
int n;
int a[207][207];//存图
int main(){
memset(a,0x3f,sizeof(a));//要先初始化为较大的值
cin>>n;
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
cin>>a[i][j];//读入,已解释
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
//Floyd板子
cout<<a[1][n]<<endl;//从1到n的最短距离
return 0;
}