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的更多相关文章
随机推荐
- Bad Hair Day
			/* Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-c ... 
- 客户关系管理系统CRM
			http://www.cnblogs.com/Michael2397/tag/SSH%E9%A1%B9%E7%9B%AE-CRM/ 客户关系管理系统 
- Debian Buster Nginx 布署 Brophp 项目(类 Thinkphp)
			1 材料 debian buster nginx a project that develop base brophp 2 步骤 配置文件 /etc/nginx/sites-available/pis ... 
- [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件
			问题1:怎样通过批处理调用java代码? 问题2:怎样通过java从CSV文件获取到用户名和密码存入变量? 问题3:怎样将获取到的用户名和密码组合成字符串,写入外部批处理文件? 问题4:怎样在批处理文 ... 
- SVN中检出 和 导出 的区别
			SVN中检出 和 导出 的区别:检出得到的文件夹中,是受SVN客户端控制的,对其进行文件或文件夹的增删改操作都会被SVN客户端识别出来,对其可以进行update.commit操作.其中含有.svn隐藏 ... 
- 经典的SQL语句面试题(转)
			Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表 问题:1. ... 
- 基于beego orm 针对oracle定制
			目前golang的ORM对oracle支持都没有mysql那样完整,一个orm要同时兼容mysql和oracle由于在sql语法上区别,会使整orm变的非常臃肿. 本项目是在beego orm上修改, ... 
- RESTful架构概念
			本文转载自:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软 ... 
- (线段树)Mayor's posters --poj -- 2528
			链接: http://poj.org/problem?id=2528 覆盖问题, 要从后往前找, 如果已经被覆盖就不能再覆盖了,否则就可以覆盖 递归呀递归什么时候我才能吃透你 代码: #include ... 
- HDU2212 DFS                                                                                            2016-07-24 13:52             56人阅读              评论(0)              收藏
			DFS Problem Description A DFS(digital factorial sum) number is found by summing the factorial of eve ... 
