P1880 求助!
  • 板块学术版
  • 楼主GWBailang
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/6/3 15:59
  • 上次更新2023/10/23 13:59:54
查看原帖
P1880 求助!
559442
GWBailang楼主2023/6/3 15:59

动态规划,应该是细节错了吧……

#include<bits/stdc++.h>
using namespace std;
int a[105];
int dp[105][105];
int main(){
	int n,he,r,zhong;
	cin>>n;
	memset(dp,0x3f,sizeof(dp));
	for(int i=1;i<=n;i++){
		cin>>a[i];
		dp[i][i]=a[i];
	}
	dp[0][0]=0;
	for(int l=2;l<=n;l++){
		for(int i=0;i<n;i++){
			r=i+l-1;he=0;
			zhong=dp[i][i]+dp[(i+1)%n][r%n];
			for(int j=i+1;j<r;j++){
				zhong=min(zhong,dp[i][j%n]+dp[(j+1)%n][r%n]);
			}
			for(int j=i;j<=r;j++)he+=a[j%n];
			dp[i][r%n]=min(dp[i][r%n],zhong+he);
		}
	}
	zhong=dp[0][n-1];
	for(int i=0;i<n;i++){
		zhong=min(zhong,dp[i][(i+n-1)%n]);
	}
//	for(int i=0;i<n;i++){
//		for(int j=0;j<n;j++)cout<<dp[i][j]<<" ";
//		cout<<endl;
//	}
	cout<<zhong<<endl;
	return 0;
}
2023/6/3 15:59
加载中...