首先設在整個數組內可以直接到達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. 获取验证码效果和后台代码(js+html+cs)

    客户端js+html代码 <script type="text/javascript"> var tcode = 0;//定时器返回代码 //获得验证码 functio ...

  2. 解决ios手机页面overflow scroll滑动很卡的问题

    在移动端html中经常出现横向/纵向滚动的效果,但是在iPhone中滚动速度很慢,感觉不流畅,有种卡卡的感觉,但是在安卓设备上没有这种感觉; 要解决这个问题很简单: 一行代码搞定 -webkit-ov ...

  3. linux 动态库 静态库 函数覆盖

    本文讨论了linux动态库  静态库中函数的覆盖问题. 测试目的: 同名函数,分别打成动态库libdync_lib.so与静态库libstatic_lib.a,并把libstatic_lib.a打到另 ...

  4. JavaScript修改注册表

    JavaScript修改注册表 2009-04-14 11:22:13|  分类: JS相关 |  标签: |字号大中小 订阅     注册表有关安全设置项的说明: 注册表路径: HKEY_CURRE ...

  5. 【JS】判断浏览器类型

    判断原理 JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性 ...

  6. 2018.09.10 bzoj1597: [Usaco2008 Mar]土地购买(斜率优化dp)

    传送门 终究还是通宵了啊... 这是一道简单的斜率优化dp. 先对所有土地排序,显然如果有严格小于的两块土地不用考虑小的一块. 于是剩下的土地有一条边单增,另外一条单减. 我们假设a[i]是单减的,b ...

  7. Nginx安装SSL安全证书

    1. 在Nginx的安装目录下的config目录下创建cert目录,并且将下载的证书全部文件拷贝到cert目录中.如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为2 ...

  8. autolayout之后获取uiview的frame

    这个只要一行代码就搞定了.详细请看: In order to get the right frame/bounds of your UIImageView after resizing, you ne ...

  9. (网络流 最大流 Dinic || SAP)Control -- hdu --4289

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  10. A Good Story for Great Friends

    There once was a little girl who had a bad temper. Her mother gave her a bag of nails and told her t ...