牛客-数学考试——前缀和的k区间问题
Posted C+++++++++++++++++++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客-数学考试——前缀和的k区间问题相关的知识,希望对你有一定的参考价值。
题目
题目解析
总结下上面说的两点:
- 需要同时找两个的原因。
- 如何优化到O(n)级别。
解题代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll dp[200005];
int main()
int t,n,k;
ios::sync_with_stdio(false);
cin>>t;
while(t--)
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>dp[i];
dp[i] += dp[i-1];
ll ret = -1e18;
ll mx1 = -1e18;
for(int i=k;i+k<=n;i++)
mx1 = max(mx1,dp[i]-dp[i-k]);
ret = max(mx1+dp[i+k]-dp[i],ret);
cout<<ret<<'\\n';
以上是关于牛客-数学考试——前缀和的k区间问题的主要内容,如果未能解决你的问题,请参考以下文章