PTA 租用游艇问题
题目描述
长江游艇俱乐部在长江上设置了n个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i到游艇出租站j之间的租金为r(i,j),1<=i<j<=n。试设计一个算法,计算出从游艇出租站1 到游艇出租站n所需的最少租金。
输入格式:
第1 行中有1 个正整数n(n<=200),表示有n个游艇出租站。接下来的第1到第n-1 行,第i行表示第i站到第i+1站,第i+2站, … , 第n站的租金。
输入样例:
1 | 3 |
输出样例:
1 | 12 |
题解:
我们可以想到如果要求第1个站到第n站的租金最小值,所可以$O(N^2)$枚举1->n站之间所有可能的情况——比如从第1个站到第3个站可以直接从第1个站到第3个站,也可以从第1个站先到第2个站再从第2个站到第3个站.所以我们需要用一个数组$dp[i][j]$记录第i个站到第j个站的最小租金,不断通过枚举更新这个数组,最终$dp[1][n]$就是第1个站到第n个站的最小租金,也就是我们要求的答案.
代码:
1 |
|