题目梗概
给定一个长度为 n 的序列 A 。
求一个区间的长度不小于x的最大和。
1≤x≤n≤104,0≤m≤105,∣Ai∣≤104 。
解题思路
相信我暴力可以过!!!
因为这题仅仅只是为了展示LOJ评测机的速度
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=10005;
int n,m,ans[maxn],sum[maxn];
int main(){
scanf("%d%d",&n,&m);
memset(ans,192,sizeof(ans));
for (int i=1;i<=n;i++) {
int x;scanf("%d",&x);
sum[i]=sum[i-1]+x;
}
for (int i=1;i<=n;i++)
for (int j=i;j<=n;j++)
if (sum[j]-sum[j-i]>ans[i]) ans[i]=sum[j]-sum[j-i];
for (int i=n-1;i>=1;i--) if (ans[i]<ans[i+1]) ans[i]=ans[i+1];
for (int i=1;i<=m;i++){
int x;scanf("%d",&x);
printf("%d\n",ans[x]);
}
return 0;
}