游艇租用问题2
?上一篇 blog 中用了一種方法來解決這個問題。在看別人博客時,發(fā)現(xiàn)可以用一維數(shù)組兩重循環(huán)來解決。
狀態(tài)轉(zhuǎn)移方程 : dp (i) ?= min(dp(i),dp(j)+r(j,i)) ; 其中dp(i)初始化為r(0,i), 0<j<i
code 如下:
#include <bits/stdc++.h> using namespace std;int rent[200][200] ;int getMinRenti(int n){int dp[200] ;dp[0] = 0 ;dp[1] = rent[0][1];for (int i = 2 ; i < n ;++i){dp[i] = rent[0][i] ;for (int j = 1 ; j < i ; ++j){dp[i] = min(dp[i], dp[j]+rent[j][i]);}}return dp[n-1]; } int main(){int n ;while (cin>>n){for (int i =0 ; i<n-1 ;++i){for(int j = i+1 ; j < n; ++j){cin>>rent[i][j] ;}}cout<<"minspent is "<<getMinRenti(n);}return 0; }
總結(jié)
- 上一篇: python调用存储过程怎么传多个参数_
- 下一篇: onpropertychange事件