https://www.acwing.com/problem/content/3496/
题目大意:
给你一组长度为n的数组和k
同时给你 每个数的标记(0和1 | 表示能否可选)
你可以选一个长度恰为k的区间 让里面的不可选数全部变成可选
问你修改之后 可选元素之和的最大值是多少
思路:
首先 答案为 已经可选的+后继修改的
所以我们已经可选的是固定的
我们需要找后继修改的
因此我们可以通过前缀和来处理需要修改的数组
然后枚举区间即可
code:
(记得开LONG LONG)
#include
using namespace std;
typedef long long LL;
const int N = 1e5+10;
int a[N],st[N];
LL sum[N];
int n,k;
int main()
{
scanf("%d%d",&n,&k);
LL ans = 0 ;
for(int i = 1; i
关注
打赏
