【问题描述】

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

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

万里长城,一共有 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. cookie和session的比较

    cookie和session的比较 一.对于cookie: ①cookie是创建于服务器端 ②cookie保存在浏览器端 ③cookie的生命周期可以通过cookie.setMaxAge(2000); ...

  2. JSON解析工具比较,主要GSON和FastJSON

    JSON解析工具比较,主要GSON和FastJSON 一 .各个JSON技术的简介和优劣 1.json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确 ...

  3. DC组策略相关

    恢复DC组策略默认配置 DcGPOFix [/ignoreschema] [/Target: Domain | DC | BOTH] dcgpofix /? gpupdate刷新 gpedit.msc ...

  4. Python之风湿理论值函数即变量

    一,风湿历练:函数即变量,这样执行程序是不会报错的 def foo(): print ("from foo") bar() def bar(): print "form ...

  5. nginx 无法访问root权限的文件内容

    问题: 按照的nginx,nginx配置的user  是 nginx,nginx 是root用户启动的.  文件夹A放的那啥是root用户上传的文件. 可 nginx 无法访问 到  文件. 方法: ...

  6. 程序员教程-11章-Java程序设计

    自己是学java的,先看第十一章java吧. 列出章节目录,便于自己回忆内容. 11.1 Java语言概述 1 Java语言的特点 2 Java开发环境 11.2 Java语言基础 11.2.1 基本 ...

  7. ansible进阶小技巧--tags

    用ansible写playbook的朋友可能会发现,当配置工作很多时,如果在中间过程出错了,修改后想重新执行,前面的一大堆步骤让人感觉很烦躁.虽然提供了“retry”文件,但是却只是根据host来判断 ...

  8. VirtualBox如何扩展虚拟机Ubuntu的硬盘容量?

    一.问题描述 刚刚在VirtualBox中使用Ubuntu虚拟机中,出现了虚拟硬盘不够用的情况.  乖乖,查了一下磁盘空间,如下所示: df -H 原来是上午安装Ubuntu虚拟机的时候,选择了动态分 ...

  9. HTTP request failed! HTTP/1.1 411 Length Required

    $opts = array( 'http'=>array( 'method'=>"POST", 'header' => 'Content-Length: 0' / ...

  10. python没有switch,可以用字典来替代

    python没有switch,是因为可以用字典来替代,具体方法如下: def add(x,y): print(x+y)def subtraction(x,y): print(x-y)def multi ...