AC了,但不理解
查看原帖
AC了,但不理解
1285691
yinbe2楼主2024/7/7 23:51
#include<iostream>
using namespace std;
int n;
long long a[1000005],dp1[1000005],dp2[1000005],Max=-(1ll<<62); 
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
	for(int i=1;i<=n;i++)dp1[i]=max(dp1[i-1]+a[i],a[i]);
	for(int i=2;i<=n;i++)dp1[i]=max(dp1[i],dp1[i-1]);//这一行和下面打注释的那一行是什么意思,没看懂
	for(int i=n;i>=1;i--)dp2[i]=max(dp2[i+1]+a[i],a[i]);
	for(int i=n-1;i>=1;i--)dp2[i]=max(dp2[i+1],dp2[i]);//
	for(int i=2;i<=n-1;i++)Max=max(Max,dp1[i-1]+dp2[i+1]);
	printf("%lld",Max);
	return 0;
}
2024/7/7 23:51
加载中...