态转移方程: 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;
}
快别扯淡了,我什么都不想听