问题:
长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。 游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归
还游艇。游艇出租站i到游艇出租站j之间的租金为r(i, j)(1≤i< j ≤ n)。试设
计一个算法,计算出从游艇出租站1到游艇出租站n所需的最少租金。
思路:本问题需要采用二维数组,利用“对角线”来计算,我是设置间隔值从2开始(不相邻)。
假设从第 i 站到第 j 站的最优办法是:从 i 到 k (i<=k<=j),再从 k 到 j ,即 r( i , k )+r( k , j )。则用r( i , k )+r( k , j )代替r( i , j )。最后所有数据都在 a 数组中了,我们只要输出 a[1][n]即可。
代码:
#include <iostream>
using namespace std;
int a[10001][10001], k;
int main()
{