【问题描述】

万里长城是中国强大的标志,长城在古代的用途主要用于快速传递军事消息和抵御

外敌,在长城上的烽火台即可以作为藏兵的堡垒有可以来点燃狼烟传递消息。 现在有一段

万里长城,一共有 N 个烽火台,有些烽火台里驻扎有士兵,而有一些烽火台没有驻扎。一

次将军巡视时发现了一个巨大的防卫漏洞,一个烽火台狼烟点燃后,并不是任意一个烽火

台就能看见,当距离超过 D 后就不能看见了,为了保证第一个烽火台的狼烟点燃后能顺利

传递到第 N 个烽火台,将军必须要在一些没有驻扎士兵的烽火台中安排士兵驻扎。

长城中一共有 N 个烽火台,第 1 个烽火台和第 n 个烽火台中一定驻扎着士兵,每

个烽火台直接距离是 1,将军必须安排士兵到一些烽火台使得第 1 个烽火台的狼烟能顺利

传递到第 n 个烽火台,不过由于长城太长了,将军没有太多的士兵来安排,所以他求助于

你,希望你计算出 安排士兵最少的烽火台数量。

【输入格式】

第一行是 2 个整数 N,D,表示一共 N 个烽火台,狼烟能传递的最长距离 D

接下来一行是 N 个数 0 或 1,表示第 i 个烽火台是否驻扎士兵,1 表示驻扎了士兵,0 表示

没有驻扎。数据保证第 1 个和第 N 个一定是 1

【输出格式】

1 个整数表示安排士兵的最少烽火台数量

【输入样例 1】

4 1

1 0 1 1

【输出样例 1】

1

【输入样例 2】

8 2

1 1 0 0 1 0 0 1

【输出样例 2】

2

【数据规模】

20%数据 N<=20

50%数据 N<=1000

100%数据,N<=300000 ,1<=D<=N


签到题。

据说有搜索和dp拿部分分的做法(蒟蒻表示不会)。

显然模拟更好写啊?

代码:

#include<bits/stdc++.h>
using namespace std;
inline int read(){
    int ans=0;
    char ch=getchar();
    while(!isdigit(ch))ch=getchar();
    while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
    return ans;
}
int n,d;
int main(){
    freopen("wall.in","r",stdin);
    freopen("wall.out","w",stdout);
    n=read(),d=read();
    int cnt=0,ans=0;
    for(int i=1;i<=n;++i){cnt=(read()?0:cnt+1);if(cnt==d)cnt=0,++ans;}
    cout<<ans;
    return 0;
}

2018.08.30 NOIP模拟 wall(模拟)的更多相关文章

  1. 2018.08.30 NOIP模拟 graph(dfs序/树剖+线段树)

    [描述] 给你一个图,一共有 N 个点,2*N-2 条有向边. 边目录按两部分给出 1. 开始的 n-1 条边描述了一颗以 1 号点为根的生成树,即每个点都可以由 1 号点 到达. 2. 接下来的 N ...

  2. 2018.08.30 NOIP模拟 kfib(矩阵快速幂+exgcd)

    [输入] 一行两个整数 n P [输出] 从小到大输出可能的 k,若不存在,输出 None [样例输入 1] 5 5 [样例输出] 2 [样例解释] f[0] = 2 f[1] = 2 f[2] = ...

  3. 2018.08.22 NOIP模拟 string(模拟)

    string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字 ...

  4. 2018.08.19 NOIP模拟 change(简单模拟)

    Change 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 Alice 和 Bob 又聚在一起了!他们已经厌倦了取石子游戏,现在他们热衷于切题.于是,Alice 找到了一道题让 B ...

  5. 2018.08.29 NOIP模拟 movie(状压dp/随机化贪心)

    [描述] 小石头喜欢看电影,选择有 N 部电影可供选择,每一部电影会在一天的不同时段播 放.他希望连续看 L 分钟的电影.因为电影院是他家开的,所以他可以在一部电影播放过程中任何时间进入或退出,当然他 ...

  6. 2018.08.29 NOIP模拟 pmatrix(线性筛)

    [问题描述] 根据哥德巴赫猜想(每个不小于 6 的偶数都可以表示为两个奇素数之和),定义 哥德巴赫矩阵 A 如下:对于正整数对(i,j),若 i+j 为偶数且 i,j 均为奇素数,则 Ai,j = 1 ...

  7. 2018.08.22 NOIP模拟 or(线段树)

    or [描述] 构造一个长度为 n 的非负整数序列 x,满足 m 个条件,第 i 个条件为x[li] | x[li+1] | - | x[ri]=pi. [输入] 第一行两个整数 n,m.接下来 m ...

  8. 2018.08.19 NOIP模拟 dp(二分+状压dp)

    Dp 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 一块土地有 n 个连续的部分,用 H[1],H[2],-,H[n] 表示每个部分的最初高度.有 n 种泥土可用,他们都能覆盖连续 ...

  9. 2018.08.19 NOIP模拟 number(类数位dp)

    Number 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 如果一个数能够表示成两两不同的 3 的幂次的和,就说这个数是好的. 比如 13 是好的,因为 13 = 9 + 3 + ...

随机推荐

  1. UI5-文档-4.1-Hello World!

    如你所知,SAPUI5是关于HTML5的.让我们开始构建第一个仅使用HTML的“Hello World”. Preview 浏览器显示文本“Hello World” Coding 你可以在此查看和下载 ...

  2. H5特性回顾

    canvas 绘画, video 媒介回放 audio元素 对本地离线存储的更好支持, 新的特殊内容 - 元素 比如 article,footer,header,nav,section, 新的表单控件 ...

  3. Linux逻辑卷的拉伸和缩小

    相对于普通磁盘优势是逻辑卷可以在线动态的拉伸(不用先unmount操作),只要vg中有足够的空间即可 1:首先查看vg是否有足够的空间 [root@gechong mapper]# vgdisplay ...

  4. pandas 一行文本拆多行,一列拆多列

    https://zhuanlan.zhihu.com/p/28337202 一列拆多列: http://blog.csdn.net/qq_22238533/article/details/761875 ...

  5. JAVA HttpClient进行POST请求(HTTPS)

    目前,要为另一个项目提供接口,接口是用HTTP URL实现的,最初的想法是另一个项目用jQuery post进行请求. 但是,很可能另一个项目是部署在别的机器上,那么就存在跨域问题,而jquery的p ...

  6. ftp上传下载工具类

    package com.taotao.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNo ...

  7. Node.js的知识点框架整理

    背景:因为appium是基于Node.js的,所以想看一下Node.js.但是发现很多资料的顺序看起来有点颠倒.然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用. 本文不包含nod ...

  8. Hibernate 序列生成主键

    @Entity @Table(name="TABLE_NAME") public class TableName implements Serializable { @Id @Ge ...

  9. OC 线程操作 - GCD使用 -同步函数,异步函数,串行队列,并发队列

    - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ // GCD 开几条线程并不是我们 ...

  10. 使用jdbc编程实现对数据库的操作以及jdbc问题总结

    1.创建数据库名为mybatis. 2. 在数据库中建立两张表,user与orders表: (1)user表: (2)orders表: 3.创建工程 * 开发环境: * eclipse mars *  ...