只对第二个点&&只错第二个点
查看原帖
只对第二个点&&只错第二个点
593505
jsysy楼主2022/8/15 23:16

这是只过第二个点的代码:

#include<bits/stdc++.h>
#define maxn 200010
#define inf -0x3f3f3f3f
using namespace std;
int n,a[maxn];
int s[maxn],ans=inf;

int main(){
	cin>>n;
	memset(s,0,sizeof(s));
	for(int i=1;i<=n;i++){
		cin>>a[i];
		s[i]=s[i-1]+a[i];
		for(int j=1;j<i;j++){
			ans=max(ans,s[i]-s[j]);
		}
	}
	cout<<ans;
	return 0;
} 

这是只错第二个点的代码:

#include<bits/stdc++.h>
#define maxn 200010
#define inf -0x3f3f3f3f
using namespace std;
int n,a[maxn];
int s[maxn],u[maxn],ans=inf,mn=0;

int main(){
	cin>>n;
	memset(s,0,sizeof(s));
	for(int i=1;i<=n;i++){
		cin>>a[i];
		s[i]=s[i-1]+a[i];
		mn=min(mn,s[i]);//减数mn越小↓
		u[i]=max(u[i-1],s[i]-mn);//差越大
		ans=max(ans,u[i]);
	}
	cout<<ans;
	return 0;
} 

这是第二个点:

2000
-145 -1033 -407 -656 -1063 -231 -302 -531
......
-102 -676 -662 -970 -710 -983 -600 -215
(太长了,如果没看错,全是负数)

想求得正解

2022/8/15 23:16
加载中...