首页 > 代码库 > 【Luogu1359】租用游艇
【Luogu1359】租用游艇
点此进入原题
算法:简单线性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】租用游艇
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。