小墨在努力!!
吗了个b的。。。。。

态转移方程: dp[i][j]=max{dp[i][j-1]+A[j],dp[i-1][t]+a[j] (i-1<=t<n-m+i) }

#include <stdio.h>
#include <string.h>
int num[1000050] ,pre[1000050] ,now[1000050];
int main ()
{
long int m ,n ,max_pre;
while (scanf("%d%d",&m,&n) != EOF)
{
for (int i = 1 ;i <= n ;i++)
scanf("%d",&num[i]);
memset(pre ,0 ,sizeof (pre)) ;
memset(now ,0 ,sizeof (now)) ;
for (int i = 1 ;i <= m ;i++)
{
max_pre = -9999999;
for (int j = i ;j <= n ;j++)
{
//now[j] = max(now[j - 1] + num[j] ,pre[j - 1] + num[j]);
now[j] = (now[j - 1] > pre[j - 1] ? now[j - 1] : pre[j - 1]) + num[j];
pre[j - 1] = max_pre;
if (now[j] > max_pre)
max_pre = now[j];
}
}
printf("%ld\n",max_pre);
}
return 0;
}

 

posted on 2012-02-13 18:58  小墨在努力!!  阅读(1054)  评论(0编辑  收藏  举报