码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces 738D

时间:2016-12-06 14:18:16      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:force   using   char   blog   pre   space   nbsp   style   code   

  题意:一行1*n的格子放船只,船数为a,船的长度为b,每格为0或1,1表示该格并不是船只的一部分,找出最少的格子数使得射击这些格子至少能打中一艘船。

  思路:船的长度为b,即每段连续的长度为b的0的串都可以放下一只船,射击点为最后一个格子时最优,找出所有的可以放船的位置res个,选择其中的res-a+1个位置。

 

#include<bits/stdc++.h>
using namespace std;
char str[200005];
int op[200005]={0};
int main() {
    int n,a,b,k,cnt=0,tmp,l,t=0;
    scanf("%d%d%d%d%s",&n,&a,&b,&k,str);for(int i=0;i<n;++i) {
        if(str[i]==0) ++t;
        if(str[i]==1) t=0;
        if(t==b) {
            op[cnt++]=i+1;
            t=0;
        }
    }
    cnt-=a-1;
    printf("%d\n",cnt);
    for(int i=0;i<cnt;++i) {
        printf("%d%c",op[i],(i==cnt-1)?\n: );
    }
    return 0;
}

 

codeforces 738D

标签:force   using   char   blog   pre   space   nbsp   style   code   

原文地址:http://www.cnblogs.com/LinesYao/p/6137135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!