记录编号 248820 评测结果 AAAAAAAAAA
题目名称 石子合并 最终得分 100
用户昵称 Gravatar【离开·再见】星裔·自由蒂兰 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2016-04-11 15:20:10 内存使用 0.00 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn=110;
int a[maxn][maxn],f[maxn][maxn],h[maxn];
void Sum(int);
int haha(){
	freopen("shizi.in","r",stdin);
	freopen("shizi.out","w",stdout);
	memset(a,0,sizeof(a));
	memset(f,0,sizeof(f));
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&h[i]);
	Sum(n);
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i][j]==0)printf("a[%d][%d]=-- ",i,j);
			if(a[i][j]<10&&a[i][j]!=0)printf("a[%d][%d]=%d  ",i,j,a[i][j]);
			if(a[i][j]>=10)printf("a[%d][%d]=%d ",i,j,a[i][j]);
		}
		printf("\n");
	}*/
	for(int d=2;d<=n;d++){
		for(int i=1;i<=n-d+1;i++){
			int j=i+d-1,ans=0x7f7f7f7f;
			for(int k=i;k<=j-1;k++){
				if(f[i][k]+f[k+1][j]+a[i][j]<ans)
					ans=f[i][k]+f[k+1][j]+a[i][j];
			}
			f[i][j]=ans;
		}
	}
	printf("%d\n",f[1][n]);
	return 0;
}
void Sum(int n){
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			for(int k=i;k<=j;k++)
				a[i][j]+=h[k];
}
int hehe=haha();
int main(){;}