比赛 清明时悲哀杯 评测结果 AAAAAAAAAA
题目名称 石子合并 最终得分 100
用户昵称 CSU_Turkey 运行时间 0.006 s
代码语言 C++ 内存使用 0.47 MiB
提交时间 2017-03-31 20:36:34
显示代码纯文本
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
long long n,s[101],d[101][101],sum[101][101];
int main()
{
	freopen("shizi.in","r",stdin);
	freopen("shizi.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
	scanf("%d",&s[i]);
	d[i][i]=0;
	sum[i][i]=s[i];
}   
    for(int i=1;i<=n;i++)
    for(int j=i+1;j<=n;j++)
    sum[i][j]=sum[i][j-1]+s[j];
   for(int len=2;len<=n;len++)
   {
   	for(int i=1;i<=n-len+1;i++)
   	{
   		int j=i+len-1;
   		d[i][j]=1000000000;
   		for(int k=i;k<j;k++)
   		{
   			if(d[i][k]+d[k+1][j]+sum[i][j]<d[i][j])d[i][j]=d[i][k]+d[k+1][j]+sum[i][j];
		   }
	   }
   }
  // for(int i=1;i<=n;i++)
  // for(int j=1;j<=n;j++)cout<<d[i][j];
   cout<<d[1][n];
return 0;
}