想到了问题,但不会解决
查看原帖
想到了问题,但不会解决
1095195
aliah楼主2024/12/5 14:42

中间有几个连续,最后和几个和最前边的几个连续的情况肯定是可能的,但是我写的没包括这种情况,但是想了几种改进都是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;
} 
2024/12/5 14:42
加载中...