P1359 租用游艇
最简单的dp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=2e3+10; 4 const int inf=0x3f3f3f3f; 5 int dp[maxn]; 6 int a[maxn][maxn]; 7 int main() 8 { 9 memset(dp,inf,sizeof(dp)); 10 int n; 11 scanf("%d",&n); 12 for(int i=1;i<=n-1;i++){ 13 for(int j=i+1;j<=n;j++){ 14 scanf("%d",&a[i][j]); 15 } 16 } 17 dp[1]=0; 18 for(int i=1;i<=n-1;i++){ 19 for(int j=i+1;j<=n;j++){ 20 dp[j]=min(dp[j],dp[i]+a[i][j]); 21 } 22 } 23 printf("%d\n",dp[n]); 24 return 0; 25 }