jzoj1407
首先設在整個數組內可以直接到達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的更多相关文章
随机推荐
- HTML5新协议介绍 WebSocket
WebSocket protocol 是HTML5一种新的协议(protocol).它是实现了浏览器与服务器全双工通信(full-duplex). 现在,很多网站为了实现即时通讯(real-time) ...
- mysql 执行多线程临时方案
sqr::IDatabase *db=NULL;IDbConnection *conn = NULL;int main(int argc, char* argv[]) { db = GetDataba ...
- qrc转换成py
- 2018.08.04 cogs2633. [HZOI 2016]数列操作e(线段树)
传送门 支持区间加w(i−ql+1)2" role="presentation" style="position: relative;">w(i ...
- spring + rs + RocketMQ 【精】
cxf-rs-rocketmq 项目地址:见git │ pom.xml │ └─src ├─main │ ├─java │ │ └─cn │ │ └─zno │ │ ├─pojo │ │ │ Rece ...
- RepositionBars的用法和参数的意义(引用别人的)
MFC窗口位置管理详细分析及实例 在一般用MFC编写的程序的窗口客户区中,可能有好几个子窗口(具有WM_CHILD风格的窗口).上边是工具栏,中间是视图窗口,下边是状态栏.三个窗 口在框架的客户区里和 ...
- 配置使用sourcemap调试vue源码爬坑
环境: Google Chrome V72.0.3626.109 vue-dev V 2.6.10 爬坑的乐趣就不说了(我恨啊),以下说一下出坑要点 1. 在vue-dev的package.json ...
- Hdu428 漫步校园 2017-01-18 17:43 88人阅读 评论(0) 收藏
漫步校园 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- Hdu2952 Counting Sheep 2017-01-18 14:56 44人阅读 评论(0) 收藏
Counting Sheep Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
- 第一章 JVM内存结构
注意:本系列博客,主要参考自以下四本书 <分布式Java应用:基础与实践><深入理解Java虚拟机(第二版)><深入分析Java web技术内幕><实战jav ...