任意n个数中m个之和最大值函数(动态规划)

来源:互联网 发布:java字符串转换10进制 编辑:程序博客网 时间:2024/05/14 10:06

#include<stdio.h>
#define n 12
#define MAX(a,b) ((a)>(b))?(a):(b)
int f[n][n];
int main(){

 int a[11]={0,-1,2,-2,3,4,-5,6,-9,6,2};
     int i,j;
  int sum=0;
  for(i=1;i<n-1;i++)
  {
   sum+=a[i];
   f[i][i]=sum;
   f[i][0]=0;
  }
  for(i=2;i<n-1;i++)
   for(j=1;j<i;j++){
   f[i][j]=MAX(f[i-1][j],f[i-1][j-1]+a[i]); 
   }
            for(i=1;i<n-1;i++)
   for(j=0;j<=i;j++)
   {
    printf("%d\t",f[i][j]);
    if(j==i) printf("\n");
   }
   
 

 return 0;


}

原创粉丝点击