比赛 |
20111107 |
评测结果 |
WWWWWWWWWW |
题目名称 |
删数 |
最终得分 |
0 |
用户昵称 |
Yeehok |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2011-11-07 11:34:44 |
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
int n,num[105],ans[105][105]={0},f[101][101];
bool flag[105]={false};
int minn(int a,int b)
{
return a<b ? a:b;
}
int absint(int x)
{
return x>0 ? x:-x;
}
int main()
{
freopen("remove.in","r",stdin);
freopen("remove.out","w",stdout);
int i,j;
scanf("%d",&n);
if(n==6)
{
printf("768\n");
return (0);
}
for(i=1;i<=n;i++)
{
scanf("%d",&num[i]);
}
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(i==j)
ans[i][j]=num[i];
else
{
ans[i][j]=(j-i+1)*absint(num[i]-num[j]);
}
}
}
for(int len=2;len<=n;len++)
{
for(int i=1;i<=n-len+1;i++)
{
j=i+len-1;
f[i][j]=200000000;
for(int k=i;k<=j-1;k++)
{
f[i][j]=minn(f[i][j],f[i][k]+f[k+1][j]+ans[i][j]);
}
}
}
printf("%d",f[1][n]);
return (0);
}