1. 程式人生 > >【Luogu1359】租用遊艇

【Luogu1359】租用遊艇

amp tex main pid log pro 算法 ext i++

點此進入原題

算法簡單線性DP

題解

本題是最短路模版題,也是線性DP的模版題啊……(自己胡謅的……)

設f[i]為到第i個站的最小租金,則

f[1]=0, f[i]=min{f[j]+r[j][i]}(1≤j<i)

(r[i][j]表示從i到j的租金,輸入給出)

就是這樣,也很好理解喲~~

代碼:

#include <cstdio>
const int N = 233;
#define INF 23333333
int r[N][N], f[N], n;
inline int mn(int x, int y) {
    return x < y ? x : y;
}
void init() { scanf("%d", &n); for(int i = 1; i <= n; i++) for(int j = i+1; j <= n; j++) scanf("%d", &r[i][j]); //按題目要求讀入 } void work() { f[1] = 0; //初始化 for(int i = 2; i <= n; i++) { f[i] = INF; for(int j = 1; j < i; j++) f[i]
= mn(f[i], f[j]+r[j][i]); //狀態轉移 } printf("%d", f[n]); } int main() { init(); work(); return 0; }

那麽就以這個水題的題解,作為第一篇博客吧!

【Luogu1359】租用遊艇