首先設在整個數組內可以直接到達n+1的最左邊的點點為x

則x+1-n區間都可以一次或2次到達n+1

如果某一個點i可以一次到達n+1,則其i+a[i]大於等於n+1

否則可以先跳到i再跳到n+1,需要2步

然後將右邊界r賦值為x

繼續在區間[1,r-1]找一個可以直接到達x的點y

則區間[y,r-1]中能夠直接跳到r的點需要f[r]步,否則需要f[r]+1步

以此類推

#include<bits/stdc++.h>

using namespace std;

int n,m,a[100010],f[100010],g[100010];

int main(){

scanf("%d%d",&n,&m);

for(int i=1;i<=n;i++)

scanf("%d",&a[i]);

for(int i=1;i<=n;i++){

g[i]=i+a[i];

g[i]=max(g[i-1],g[i]);

}

int r=n+1;

while(r>1){

int l=lower_bound(g+1,g+n+1,r)-g;

while(l+a[l]<r)l++;

for(int i=l;i<r;i++){

if(i+a[i]>=r)f[i]=f[r]+1;

else f[i]=f[r]+2;

}

r=l;

}

for(int i=1;i<=m;i++){

int x;

scanf("%d",&x);

printf("%d ",f[x]);

}

}

jzoj1407的更多相关文章

随机推荐

  1. 源代码安装grub-customizer

    wget https://launchpad.net/grub-customizer/5.0/5.0.6/+download/grub-customizer_5.0.6.tar.gztar zxvf ...

  2. Flask源码剖析详解

    1. 前言 本文将基于flask 0.1版本(git checkout 8605cc3)来分析flask的实现,试图理清flask中的一些概念,加深读者对flask的理解,提高对flask的认识.从而 ...

  3. Mathtype使用技巧

    1. 打开/关闭MathType窗口 Alt+Ctrl+q:插入inline公式   Ctrl+S:更新公式到Word相应位置 Alt+F4:保存并关闭MathType窗口,返回Word. 2. 公式 ...

  4. Easyui form 处理 Laravel 返回的 Json 数据

    默认地,Easyui Form 请求的格式是 Html/Text,如果服务端 Laravel 返回的数据是 Json 格式,则应当在客户端进行解析.以下是 Easyui 官方文档的说明: Handle ...

  5. 【文件下载】Java下载文件的几种方式

    [文件下载]Java下载文件的几种方式  摘自:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServl ...

  6. Devexpress VCL Build v2014 vol 14.2.4 发布

    What's New in 14.2.4 (VCL Product Line)   New Major Features in 14.2 What's New in VCL Products 14.2 ...

  7. 详解Windows Service Wrapper(winsw.exe)及应用场景

    winsw.exe可以帮助nginx作为windows服务自启动,不需要每次都输入命令,很方便,使用到目前为止这种做法的效果很完美.你得到了 Windows 服务的支持,而且在服务重启时没有遗留孤立的 ...

  8. hdu-1147(跨立实验)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1147 思路:判断每条线段,如果将要输入的线段和已经有的线段相交,则这条线段不算. 参考文章:https ...

  9. 27. Green Building 绿色建筑

    27. Green Building 绿色建筑 ①When we think of green buildings,we tend to think of new ones-the kind of h ...

  10. java浅拷贝和深拷贝

    转:http://blog.csdn.net/u014727260/article/details/55003402 实现clone的2点: 1,clone方法是Object类的一个方法,所以任何一个 ...