zoukankan      html  css  js  c++  java
  • Codeforces 660C Hard Process(尺取法)

    题目大概说给一个由01组成的序列,要求最多把k个0改成1使得连续的1的个数最多,输出一种方案。

    CF 676C相似。

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 int a[333333];
     5 int main(){
     6     int n,k;
     7     scanf("%d%d",&n,&k);
     8     for(int i=0; i<n; ++i){
     9         scanf("%d",a+i);
    10     }
    11     if(k==0){
    12         int ans=0,cnt=0;;
    13         for(int i=0; i<n; ++i){
    14             if(a[i]==0){
    15                 cnt=0;
    16                 continue;
    17             }
    18             ++cnt;
    19             ans=max(ans,cnt);
    20         }
    21         printf("%d
    ",ans);
    22         for(int i=0; i<n; ++i){
    23             printf("%d ",a[i]);
    24         }
    25         return 0;
    26     }
    27     int i=0,j=0,tmpn=0,tmpk=0,ans=0,rec;
    28     while(j<n){
    29         if(a[j]==0){
    30             while(tmpk==k){
    31                 if(a[i]==0) --tmpk;
    32                 --tmpn;
    33                 ++i;
    34             }
    35             ++tmpk;
    36         }
    37         ++tmpn;
    38         if(tmpn>ans){
    39             ans=tmpn;
    40             rec=j;
    41         }
    42         ++j;
    43     }
    44     printf("%d
    ",ans);
    45     for(int i=0; i<=rec-ans; ++i){
    46         printf("%d ",a[i]);
    47     }
    48     for(int i=rec-ans+1; i<=rec; ++i){
    49         printf("1 ");
    50     }
    51     for(int i=rec+1; i<n; ++i){
    52         printf("%d ",a[i]);
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    轻量模型之Mobilenet
    GAN的Loss
    Ubuntu16.04安装后配置一条龙
    Hardnet论文阅读
    orb-slam2编译时遇到的问题
    编译opencv+opencv_contrib
    Sophus库使用踩坑
    CloudCompare Viewer使用心得
    交通场景语义分割
    ROS编译中遇到的问题
  • 原文地址:https://www.cnblogs.com/WABoss/p/5668451.html
Copyright © 2011-2022 走看看