• [CF738D]Sea Battle(贪心)


    题目链接:http://codeforces.com/contest/738/problem/D

    题意:1*n的格子里有a条长为b的船。有一个人射了k发子弹都没打中船,现在问最少再打多少次一定能保证射到一搜。

    统计出每一个子块中最多能多少条船,贪心地从左到右排列,记下船尾。假设有m条,那么除了m-a条船,剩下的位置一定能打中一条。就是打m-a+1个地方,随便打m-a+1个船尾就行了。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int maxn = 200200;
     5 int n, a, b, k;
     6 char s[maxn];
     7 vector<int> shoot;
     8 vector<int> seg;
     9 vector<int> bg, ed;
    10 
    11 int main() {
    12     // freopen("in", "r", stdin);
    13     while(~scanf("%d%d%d%d",&n,&a,&b,&k)) {
    14         scanf("%s", s+1);
    15         int cnt = 0;
    16         seg.clear();
    17         for(int i = 1; i <= n; i++) {
    18             if(s[i] == '1') {
    19                 cnt = 0;
    20             }
    21             else if(s[i] == '0') {
    22                 cnt++;
    23                 if(cnt == b) {
    24                     seg.push_back(i);
    25                     cnt = 0;
    26                 }
    27             }
    28         }
    29         int sz = seg.size();
    30         printf("%d
    ", sz);
    31         sz = sz - a + 1;
    32         for(int i = 0; i < sz; i++) {
    33             printf("%d%c", seg[i], i == sz - 1 ? '
    ' : ' ');
    34         }
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    经典SQL例题
    truncate,delete,drop的异同点
    scp 在不同主机之间数据传输
    自定义标签库
    servlet 学习
    HTTP协议 学习
    Tomcat服务器的数字证书 HTTPS 连接!
    JSP开发 路径问题汇总
    java 文件上传 下载 总结
    myeclipse 出现换行符和空格符 解决方案 换行出现乱码
  • 原文地址:https://www.cnblogs.com/kirai/p/6083424.html
Copyright © 2020-2023  润新知