您当前的位置: 首页 > 

[Acwing] 前缀和维护 夏日每日一题

*DDL_GzmBlog 发布时间:2021-05-13 18:21:30 ,浏览量:3

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            
关注
打赏
1688896170
查看更多评论
0.1729s