洛谷 P1359 租用游艇 dp

https://www.luogu.com.cn/problem/P1359
洛谷 P1359 租用游艇 dp_第1张图片思路: d p [ i ] dp[i] dp[i]表示到第 i i i个游艇出租站所需要的最少租金,那么有: d p [ i ] = m i n ( d p [ i ] , d p [ j ] + c o s t [ j ] [ i ] ) dp[i]=min(dp[i],dp[j]+cost[j][i]) dp[i]=min(dp[i],dp[j]+cost[j][i])其中 1 < = j < i 1<=j1<=j<i

#include
#define INF 0x3f3f3f3f
#define eps 1e-8
#define pr pair
using namespace std;
typedef long long ll;

int n;
int v[205][205];
int dp[205];//dp[i]表示到第i个游艇出租站所需的最少租金

int main()
{
    scanf("%d",&n);
    for(int i=1;i<n;i++)
        for(int j=i+1;j<=n;j++)
            scanf("%d",&v[i][j]);
    memset(dp,INF,sizeof(dp));
    dp[1]=0;
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j<i;j++)
            dp[i]=min(dp[i],dp[j]+v[j][i]);
    }
    printf("%d\n",dp[n]);
    return 0;
}

你可能感兴趣的:(dp,动态规划)