讨论 / 为何又无输出....
wrongnumber 2014-03-09 00:58:48
点我顶贴 收藏 删除
#include<iostream>

#include<cstdio>

#include<algorithm>

#define MAX 214748364

using namespace std;

int n,a[1002],dp[102][1002][1002]={};

int DP(int i,int l,int r)

{

if (l>r) return 0;

if (l==r) return dp[i][l][r]=i*a[l];

if (dp[i][l][r]) return dp[i][l][r];

dp[i][l][r]=MAX;

for (int q=l+1;q<r;q++)

dp[i][l][r]=min(dp[i][l][r],i*a[q]+DP(i+1,l,q-1)+DP(i+1,q+1,r));

return dp[i][l][r];

}

int main()

{

scanf("%d",&n);

for (int q=0;q<n;q++) scanf("%d",&a[q]);

sort(a,a+n,less<int>());

printf("%d",DP(1,0,n-1));

//system("pause");

return 0;

}

#1 wrongnumber@2014-03-09 01:01:55
回复 删除
哦.......目测超内存了、、、、
查看更多回复
提交回复