CF#660 C. Hard Process(尺取法)

CF660C Hard Process(尺取法) 尺取法 题目中要我们求最多改变k次后连续的1的最长长度。那么转换一下,不就是求至多包含k个0的子串的最长长度吗? 直接套用尺取法的思想,维护两端点,一旦0的个数超过k左端点就右移一位(要用if而不是while,不然会RE,因为一位就够了,最后的答案也不会出错) #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<queue> usin. 阅读详情
C. Hard Process
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given an array a with n elements. Each element of a is either 0 or 1.

Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). You can change no more than k zeroes to ones to maximize f(a).

Input

The first line contains two integers n and k (1 ≤ n ≤ 3·105, 0 ≤ k ≤ n) — the number of elements in a and the parameter k.

The second line contains n integers ai (0 ≤ ai ≤ 1) — the elements of a.

Output

On the first line print a non-negative integer z — the maximal value of f(a) after no more than k changes of zeroes to ones.

On the second line print n integers aj — the elements of the array a after the changes.

If there are multiple answers, you can print any one of them.

Examples
input
7 1
1 0 0 1 1 0 1
output
4
1 0 0 1 1 1 1
input
10 2
1 0 0 1 0 1 0 1 0 1
output
5
1 0 0 1 1 1 1 1 0 1

题意:给一个01串,将其中k个0修改为1,求最长1串的长度

思路:O(n)枚举1串的右端点r同时用队列维护左端点l
#include<bits/stdc++.h>
using namespace std;
int a[10000001];
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)==2)
    {
        queue<int>k;
        k.push(0);
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        int l=0,r=0,mmax=0;
        for(int i=1; i<=n; i++)
        {
            if(!a[i])
                k.push(i);
            if(k.size()>m+1)
                k.pop();
            int temp=i-k.front();
            if(temp>mmax)
                mmax=temp,l=k.front()+1,r=i;
        }
        printf("%d\n",mmax);
        for(int i=1; i<=n; i++)
        {
            if(i>=l&&i<=r&&!a[i]) a[i]=1;
            printf("%d%c",a[i],i<n?' ':'\n');
        }
    }
}


模电实验室:手把手教你调试共射放大电路静态工作点(避免波形失真) 本文详细介绍了共射放大电路静态工作点的调试方法,帮助避免波形失真问题。从实验准备、电路搭建到静态工作点测量,提供了实用的电阻选值策略和常见波形失真解决方案,适合电子相关专业学生和硬件工程师参考学习。 阅读详情

相关推荐

一文读懂AI大模型时代的RAG技术

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合检索技术与生成模型的技术架构,旨在通过动态引入外部知识库增强大语言模型(LLM)的生成能力。其核心思想是通过检索系统从外部数据源(如企业知识库、实时文档等)获取相关信息,并将检索结果作为上下文输入生成模型,以提高生成答案的准确性、时效性和专业性

awei0916的专栏 2118

Codeforces 660C Hard Process【二分 Or 尺取】

题目链接: http://codeforces.com/problemset/problem/660/C 题意: 给定0.1组成的数组,可以改变k个0使其为1,问最终可以得到的连续的1的最大长度。 分析: 很容易想到二分答案的做法, 二分长度,然后找是否存在满足题意的区间。 还可以用尺取法,这样在O(n)时间负责度内就可以完成,但是个人感觉写起来没有...

An55511的博客 367

别再死记硬背了!用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率

本文深度解析如何使用MaxDEA软件实操SBM、DDF、NDDF模型,手把手教你测算绿色全要素生产率(GTFP)。通过详细的模型选择对比、数据准备策略和MaxDEA操作流程,帮助研究者科学构建指标体系并准确解读结果,提升环境管理研究的实证分析能力。

weixin_28731231的博客 314

C. Hard Process CodeForces - 660C

原题链接 位于CodeForceshttps://codeforces.com/problemset/problem/660/C 翻译 ff 有一个长为 n的数组 a,并且数组 a 中的元素只有 0 和 1。 我们定义这样的 01 数组的价值为其中最长的连续 1 的的长度。ff 为了增加手中数组的价值,学习了把 0 变成 1 的魔法,最多可以释放 k 次。 现在他想知道,这个数组的价值最大能够变成多少? 题意与思路 也就是我们需要找到最长的区间,其中 0 的个数不超过 k。 我采用从右向左枚举

jdklll的博客 201

ZYNQ实战:手把手教你用AXI4-Full IP核打通PL与PS的DDR数据通道

本文提供了一份详细的ZYNQ实战指南,手把手教你创建并使用具备AXI4-Full Master接口的自定义IP核,实现PL(可编程逻辑)通过AXI HP接口直接读写PS(处理系统)的DDR内存。文章涵盖了从Vivado硬件设计、IP核配置、地址映射到Vitis软件验证的完整流程,并深入解析了数据一致性(禁用Cache)等关键要点,旨在帮助开发者掌握ZYNQ异构计算中高效数据搬运的核心技术。

weixin_29193359的博客 284

激光除草技术原理与应用全解析

激光除草技术通过光热、光化学等效应精准破坏杂草组织,核心参数包括功率(20-6000W)、波长(400nm-10.6μm)和脉冲宽度。主要应用于大田作物(如玉米、棉花)、经济作物(烟草、果树)及城市绿化,具有环保(无化学污染)、高效(识别率≥95%)和非接触等优势,但存在设备成本高(20-50万元)、技术门槛高等局限。当前技术融合AI识别、多光谱协同等创新,国产设备如华工智耘已实现95.3%识别精度。虽短期投入较高,但长期可降低30%除草成本,并带来环境效益(每亩减排1.2吨CO₂)

start_up_go的博客 557

Hard Process (二分和尺取)

题意:就是有一个序列只有0和1,可以把k个0改为1,是连续的1的个数最多。 You are given an arrayawithnelements. Each element ofais either0or1. Let's denote the length of the longest subsegment of consecutive elements ina, co...

qq_42434171的博客 451

基于opencv的鱼群检测和数量统计识别鱼群密度带界面

摘要:本项目利用OpenCV图像处理技术实现了视频鱼类自动检测计数系统。通过背景减除、形态学处理和轮廓检测等方法,在视频帧中标记鱼类并统计数量。系统包含视频读取、前景提取、轮廓分析、中心点跟踪等核心功能,可实时显示计数结果。适用于水产养殖、生态监测等领域,具有实用价值。未来可通过参数优化、引入深度学习和多目标跟踪技术进一步提升准确性。(147字)

1720

Codeforces 660C-Hard Process(尺取法)

今天比赛第一次接触到尺取法,当时没做出来,后来补题,明白了尺取法的思想。 C. Hard Process time limit per test  1 second memory limit per test  256 megabytes input  standard input output  standard output

passer__的博客 322

Asterisk中MixMonitor之支持接通后录音

一、概述 当我们使用开源的IPPBX(比如Elastix-2.5/4.0或者ISSABEL-4.0/FreePBX)的时候Outbound和Inbound路由(RingGroup/FollowMe)中有一个Call Recording选项,其值包括:Allow、Record immediately、Record On Answer和Nerver。当选择为Record On Answer,其实就是MixMonitor自带一个b选项。 尽管Asterisk自带的MixMoni...

宽简厚重—博约 1156

Amazon Skills:51个AI技能赋能亚马逊运营,从选品到广告全链路分析

在电商运营领域,数据分析和自动化工具正成为提升效率的关键。其核心原理在于将专业经验转化为结构化指令,使AI能够执行标准化流程。这种技术价值体现在降低专业门槛、提升决策效率,尤其适用于亚马逊这类数据驱动的电商平台。通过将选品、关键词研究、FBA费用计算、PPC广告优化等运营框架编码为可执行指令,AI助手能够模拟专家思维进行市场分析。Amazon Skills项目正是这一理念的实践,它提供51个覆盖运营全链路的技能模块,让卖家在自然对话环境中获得专业分析支持,实现从市场研究到利润核算的自动化工作流。

weixin_27134143的博客 1302

Hard Process(二分+前缀和)

1.求最值问题考虑二分 2.一维数组多想想前缀和 3.一维数组区间问题可以考虑双指针(尺取):枚举右端点,求左端点 代码: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int a[1000001],sum[1000001]; int n,k; bool check(int x) { for(int i=1;i+x-

weixin_45113721的博客 345

从 VL02N 拣配到 ABAP 自动化,读懂 SD_DELIVERY_UPDATE_PICKING 的位置和风险

文章摘要:SAP SD模块中,SD_DELIVERY_UPDATE_PICKING函数模块用于处理出库交货单的拣配确认,更新交货项目的拣配数量。该函数适用于未启用WM/EWM的传统SD流程,能确保拣配状态与标准交货处理逻辑同步,比直接修改数据库更安全。但在S/4HANA Cloud等新环境中,应优先使用API_OUTBOUND_DELIVERY_SRV等公开发布接口。使用该函数时需注意参数完整性和按交货单整体处理的原则,避免逐项提交导致的数据不一致问题。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 245

Hard Process

Hard Process  CodeForces - 660C         You are given an array a with n elements. Each element of a is either 0 or 1.         Let's denote the length of the longest subsegment of consecutive el

a311609000531的博客 411

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

CF 660 C

CF 660 C

yh2021tanghao的博客 160

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Hard Process CodeForces - 660C (尺取法)

You are given an array a with n elements. Each element of a is either 0 or 1.Let’s denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). You

Hanylch 620

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

CF660C C - Hard Process

题意:给你一个数组,其中有n个元素。每个元素不是0就是1。 现在可以进行k次操作,每次操作可以改变数组中的一个元素(只能改成0或1)。 请你求出操作后最长连续1的序列的长度,并输出操作后的序列。 题解 : 滑动窗口/尺取法 容易想到,枚举左右端点,然后判断里面0的个数是是否大于k。 对于右端点,如果是0,可以延伸(不超过k)。只需要枚举左端点。 维护一个窗口,对于这个区间,0的个数不够的...

mxYlulu的博客 303

Hard Process CodeForces - 660C (关于尺取法的使用)

C. Hard Process time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output You are given an array a with n elements. Each element of a is either 0 or 1. L...

FOWng_lp的博客 461

Codeforces 660C-Hard Process【尺取法经典练习】

C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an array a with n elements.

小I的博客 1503

【CodeForces】660C - Hard Process(二分,尺取法)

点击打开题目 C. Hard Process time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given an arr

wyg1997 1072

CodeForces 660C Hard Process (队列)

Description You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only nu

每一次AC都是一种感动 645

CodeForces - 660C Hard Process

You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). ...

~ 605

C. Hard Process(二分 + 前缀和 | 尺取) !

You are given an array a with n elements. Each element of a is either 0 or 1. Let's denote the length of the longest subsegment of consecutive elements in a, consisting of only numbers one, as f(a). ...

一身清贫怎敢入繁华 664

[尺取法] CF660 C.Hard Process

C. Hard Process 题意: 给一个01串,最多可以把k个0变成1,求最长连续1的长度,并且要输出最后的串。 题解: two pointers尺取,O(N)O(N)。#include<bits/stdc++.h> using namespace std; const int N = 3e5+5; int num[N]; int main(){ int n, k; s

穹妹的家 786

codeforces_660C. Hard Process(尺取法)

C. Hard Process time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output You are given an array a with n elements. Each element of a is either 0 or

凳子 555

Hard Process CodeForces - 660C(二分)

Hard Process 题目链接:CodeForces - 660C 题意:只由0...

Sirius_han的博客 365
上一篇: CF#712 C. Memory and De-Evolution(水题)
下一篇: 个人模板 线段树
信鸦
博客等级 码龄10年 10粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值