当前位置: 首页 > news >正文

CodeForces 660C Hard Process

预处理前缀和+枚举起点+二分终点。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;

const int maxn=300000+10;
int n,k;
int a[maxn],sum[maxn];

int work(int st)
{
    int l=st,r=n;
    int res=-1;
    while(l<=r)
    {
        int mid=(l+r)/2;
        if(sum[mid]-sum[st-1]<=k)
        {
            res=mid;
            l=mid+1;
        }
        else r=mid-1;
    }
    return res;
}

int main()
{
    scanf("%d%d",&n,&k);
    for(int i=1; i<=n; i++) scanf("%d",&a[i]);
    if(a[1]==0) sum[1]=1;
    for(int i=2; i<=n; i++)
    {
        sum[i]=sum[i-1];
        if(a[i]==0) sum[i]++;
    }

    int ans=0;
    int L,R;
    int flag=0;
    for(int i=1; i<=n; i++)
    {
        int tmp=work(i);
        if(tmp==-1) continue;
        if(tmp-i+1>ans)
        {
            ans=tmp-i+1;
            L=i;
            R=tmp;
            flag=1;
        }
    }
    if(flag==0)
    {
        printf("%d\n",0);
        for(int i=1; i<=n; i++) printf("%d ",a[i]);
        printf("\n");
    }
    else
    {
        printf("%d\n",ans);
        for(int i=1; i<L; i++) printf("%d ",a[i]);
        for(int i=L; i<=R; i++) printf("1 ");
        for(int i=R+1; i<=n; i++) printf("%d ",a[i]);
        printf("\n");
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/zufezzt/p/5427758.html

相关文章:

  • 流媒体选择Nginx是福还是祸?
  • 解读Secondary NameNode的功能
  • linux下Bash函数功能之编写脚本(十二)
  • PHP~foreach遍历名单数组~有必要多次观看练习
  • 玩聚的博客墙 V
  • 第九周周记
  • Linux系统下proc目录详解
  • 每天一个linux命令:du
  • 【Swift学习】Swift编程之旅---类和结构体(十三)
  • 源代码的下载和编译
  • SSH的整合
  • 项目重构之数据源配置与优化:log4j 配置数据库连接池Druid,并实现日志存储到数据库...
  • Java---常用基础面试知识点
  • 对Java中接口和抽象类的理解
  • HTML表格修饰1
  • canvas 五子棋游戏
  • CSS相对定位
  • css选择器
  • ECMAScript入门(七)--Module语法
  • es6--symbol
  • Java 网络编程(2):UDP 的使用
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js作用域和this的理解
  • Linux CTF 逆向入门
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Tornado学习笔记(1)
  • vue的全局变量和全局拦截请求器
  • 构建工具 - 收藏集 - 掘金
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 实现简单的正则表达式引擎
  • 数据仓库的几种建模方法
  • 一个SAP顾问在美国的这些年
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 交换综合实验一
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​2020 年大前端技术趋势解读
  • ​MySQL主从复制一致性检测
  • # C++之functional库用法整理
  • #1014 : Trie树
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (20050108)又读《平凡的世界》
  • (2020)Java后端开发----(面试题和笔试题)
  • (30)数组元素和与数字和的绝对差
  • (6)添加vue-cookie
  • (多级缓存)缓存同步
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)平衡树
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ******之网络***——物理***
  • ./和../以及/和~之间的区别
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution