ccf 201612-4 压缩编码

来源:互联网 发布:华艺服装淘宝店 编辑:程序博客网 时间:2024/05/29 08:42
#inclu#include <iostream>  
#include <limits.h>  
#include <algorithm>  
#include <string.h>  
#include<math.h>
#include<vector>
#define maxl 0x7fffffff   
using namespace std; 


int data[1001];  
  
int dp[1001][1001];  
int sum[1001]; 




void fun(int n){
    memset(dp,0,sizeof(dp));


for(int k=1;k<n;k++)
 for(int i=0;i<n-k;i++){
    int j=i+k;
if(k==1&&i!=0) dp[i][j]=sum[j]-sum[i-1];
if(k==1&&i==0)  dp[i][j]=sum[j];
     if(k!=1){
        int val=maxl;
      for(int s=i;s<j;s++)
        if(i!=0)  val=min(dp[i][s]+dp[s+1][j]+sum[j]-sum[i-1],val);
      else val=min(dp[i][s]+dp[s+1][j]+sum[j],val);
dp[i][j]=val;
}

 
     


     
 
 }





cout<<dp[0][n-1];
}












int main(){  
    int n;  
    cin >>n;  
  
    for (int i = 0; i<n; i++){  
         cin>>data[i];  
  
        if (i == 0)sum[i] = data[i];  
        else sum[i] = sum[i - 1] + data[i];  
  
    }  
    fun(n); 
    return 0;  
}
原创粉丝点击