中间有几个连续,最后和几个和最前边的几个连续的情况肯定是可能的,但是我写的没包括这种情况,但是想了几种改进都是86分,8号和12号WA
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n,b,i,j,k,ans=0;
cin>>n>>b;
long long a[n+1],c[n+1][b],d[b];
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<b;i++)
d[i]=0;
a[n]=a[0];
for(i=0;i<b;i++)
c[0][i]=0;
for(i=1;i<=n;i++)
{
c[i][0]=0;
for(j=1;j<b;j++)
{
c[i][j]=c[i-1][j-1]+a[i];
if(d[j-1]>c[i][j])
c[i][j]=d[j-1];
if(c[i][j]>d[j])
d[j]=c[i][j];
if(c[i][j]>ans)
ans=c[i][j];
}
}
cout<<ans;
return 0;
}