蒟蒻求助
  • 板块灌水区
  • 楼主a_little_carrot
  • 当前回复7
  • 已保存回复8
  • 发布时间2023/12/5 20:29
  • 上次更新2023/12/5 22:34:44
查看原帖
蒟蒻求助
1042960
a_little_carrot楼主2023/12/5 20:29

上课没认真听但是我培训班下周考试并且踢人如果没过我可能年纪轻轻就_____(此处是三个英文字母)了
有没有大佬教下区间dp的思路

#include<bits/stdc++.h>
using namespace std ;
#define ccf 102
int n,a[ccf],sum[ccf] ;
int f[ccf][ccf] ;
int main () {
	scanf("%d",&n) ;
	for(int i=1 ;i<=n ;i++) {
		scanf("%d",&a[i]) ;
		sum[i]=sum[i-1]+a[i] ;
	}
	memset(f,0x3f,sizeof(f)) ;
	for(int i=1 ;i<=n ;i++) f[i][i]=0 ;
	for(int len=2 ;len<=n ;len++) {
		for(int i=1 ;i<=n ;i++) {
			int j=i+len-1 ; if(j>n) continue ;
			for(int k=i ;k<j ;k++) {
				f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+sum[j]-sum[i-1]) ;
			}
		}
	}
	printf("%d",f[1][n]) ;
	return 0 ;
}

以上是合并石子低配版代码

希望可以救一救Orz

2023/12/5 20:29
加载中...