Description

为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠。于是,猫被农夫约派去捕老鼠。 猫虽然擅长捕老鼠,但是老鼠们太健美了,身手敏捷,于是猫想到了一个绝妙的办法:它决定点燃纯艾条,用烟熏老鼠。 农夫约的农庄里有N 个仓库,排成了一排,编号为1~N。

假设猫在第i 个仓库点燃艾条,烟雾就会充满该仓库,并向左右扩散Ai的距离,接着所有|i-j|<=Ai 的仓库j 的老鼠被消灭。 猫是一只爱护空气环境的好猫,它希望知道最少需要多少支艾条,才可以消灭所有老鼠。

Input

第一行:一个正整数,代表N。

第二行:N 个非负整数,第i 个数代表Ai。

Output

第一行:一个整数,代表答案。

Sample Input

10

2 0 1 1 0 3 1 0 2 0

Sample Output

3

Hint

Data Constraint

20%的数据:N <= 20

60%的数据:N <= 10^3

100%的数据:N <= 5*10^5,Ai <= N

sb区间覆盖QwQ

cjoj上63ms

好像是最快的了orz

// It is made by XZZ
// Fei Fan Ya Xi Lie~~~
#include<cstdio>
#include<algorithm>
using namespace std;
#define il inline
#define rg register
#define vd void
typedef long long ll;
il int gi(){
rg int x=0,f=1;rg char ch=getchar();
while(ch<'0'||ch>'9')f=ch=='-'?-1:f,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*f;
}
const int maxn=5e5+1;
int a[maxn],mr[maxn];
il vd checkmx(int&a,int b){if(b>a)a=b;}
int main(){
// freopen("2605.in","r",stdin);
// freopen("2605.out","w",stdout);
int n=gi();
for(rg int i=1;i<=n;++i)a[i]=gi();
for(rg int i=1;i<=n;++i)checkmx(mr[max(1,i-a[i])],i+a[i]);
for(rg int i=2;i<=n;++i)checkmx(mr[i],mr[i-1]);
int r=0,ans=0;
while(r<n)++ans,r=mr[r+1];
printf("%d\n",ans);
return 0;
}

最新文章

  1. 解读ASP.NET 5 &amp; MVC6系列(9):日志框架
  2. VBA中使用计时器的两种方法
  3. 基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发
  4. MVC之前的那点事儿系列(4):Http Pipeline详细分析(上)
  5. 关于用Max导出Unity3D使用的FBX文件流程注解
  6. AngularJS初探:搭建PhoneCat项目的开发与测试环境
  7. win32多线程学习总结:同步机制critical sections
  8. 1.2为什么需要public static void main(String[] args)这个方法
  9. 消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
  10. SUSE12Sp3-kafka安装
  11. 前端导出csv
  12. 学习Acegi应用到实际项目中(11)- 切换用户
  13. V$SQLAREA
  14. python的Socket网络编程
  15. Linux kernel AIO
  16. Unbound服务的安装与运行管理
  17. SpringBoot(十一)-- 动态数据源
  18. 《EMCAScript6入门》读书笔记——22.Module的语法
  19. 示例 - 向百度说 Hello world! 并获得回应.
  20. CH5201 数组组合【01背包】

热门文章

  1. [翻译] BAFluidView
  2. Linux 系统的用户和组详解_【all】
  3. Office 365 Pass-through身份验证及Seamless Single Sign-On
  4. right here waiting的歌词
  5. fun()()() ---- 函数的嵌套
  6. CORS (Cross Origin Resources Share) 跨域
  7. java内存分配策略
  8. python第十五课——全局变量and局部变量
  9. UVa 1252 - Twenty Questions(状压DP)
  10. 集合之Iterator