P1359 租用游艇

题目链接

P1359 租用游艇

题目分类

区间动态规划

题解

#include<bits/stdc++.h>
using namespace std;
int n;
int r[210][210];
int dp[210][210]; 
int main()
{
	cin>>n;
	for(int i=1; i<=n; i++)//注意题目中的概念“半矩阵” 
		for(int j=i+1; j<=n; j++){
			cin>>r[i][j];
			dp[i][j]=r[i][j];//状态初始值 
		}
			
	for(int d=3; d<=n; d++){//区间长度 
		for(int i=1; i<=n-d+1; i++){//状态起点 
			int j=i+d-1;//状态终点 
			for(int k=i+1; k<j; k++)//枚举决策点k 
				if(dp[i][j] > dp[i][k]+dp[k][j])//状态转移方程 
					dp[i][j] = dp[i][k]+dp[k][j];
		}
	}
	cout<<dp[1][n];

	return 0;
}

posted @ 2022-11-28 20:58  TFLSNOI  阅读(35)  评论(0编辑  收藏  举报