求助,盯着看了1h了
  • 板块AT_dp_n Slimes
  • 楼主SUPERLWR
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/8/22 19:25
  • 上次更新2023/10/27 14:07:27
查看原帖
求助,盯着看了1h了
216352
SUPERLWR楼主2022/8/22 19:25

区间 DP 板子,实在找不出错,求助qwq

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=405;
ll n,a[maxn],dp[maxn][maxn],s[maxn];
//dp[i][j] 表示从 i 到 j 的最小价值 
int main()
{
	cin>>n;
	memset(dp,0x3f,sizeof(dp));
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		dp[i][i]=a[i]; 
		s[i]=s[i-1]+a[i];
	}
	for(int k=2;k<=n;k++)
	{
		for(int i=1;i<=n-k+1;i++)
		{
			int j=i+k-1;
			for(int m=i;m<=j-1;m++)
			{
				dp[i][j]=min(dp[i][j],dp[i][m]+dp[m+1][j]);
			}
			dp[i][j]+=s[j]-s[i-1];
		}
	}
	cout<<dp[1][n];
	return 0;
}
2022/8/22 19:25
加载中...