Wrath CodeForces
来源:互联网 发布:用c语言实现汉诺塔算法 编辑:程序博客网 时间:2024/06/06 02:40
Hands that shed innocent blood!
There are n guilty people in a line, thei-th of them holds a claw with lengthLi. The bell rings and every person kills some of people in front of him. All people kill others at the same time. Namely, thei-th person kills the j-th person if and only if j < i andj ≥ i - Li.
You are given lengths of the claws. You need to find the total number of alive people after the bell rings.
The first line contains one integer n (1 ≤ n ≤ 106) — the number of guilty people.
Second line contains n space-separated integersL1, L2, ..., Ln (0 ≤ Li ≤ 109), whereLi is the length of thei-th person's claw.
Print one integer — the total number of alive people after the bell rings.
40 1 0 10
1
20 0
2
101 1 3 0 0 0 2 1 0 3
3
In first sample the last person kills everyone in front of him.
题意:
给定n个数据,两个数据之间相隔1米,给定的每个数,表示 所在位置能够击杀的最远的距离,方向值从右向左,
分析:
最右边的那个人是肯定存活的,然后依次往右杀就行,求出最终活下来的人
到此为止,历经2天 终于来把代码补上了,
原因你们肯定不知道
先来科普一下:scanf是格式化输入 printf 是格式化输出 效率比较高,但是写代码麻烦,
cin输入流,cout是输出流,写起来虽然简单,但是效率稍低
AC:
#include <iostream>#include <cmath>#include <algorithm>#include <malloc.h>#include <math.h>#include <string.h>#include <cstdio>using namespace std;const int inf=0x7fffffff; int n,a[1000010],ccmax=inf,sum=0;;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=n;i>=1;i--) { if(i>=ccmax) sum++; ccmax=min(i-a[i],ccmax); } cout<<n-sum<<endl;}
- Wrath CodeForces
- Codeforces 892B. Wrath
- CodeForces 892B Wrath
- codeforces-892B Wrath
- codeforces 892B. Wrath
- Codeforces 892 B. Wrath (递推)
- Codeforces Round #446 (Div. 2) B Wrath
- Codeforces Round #446 (Div. 2) B.Wrath
- Codeforces 892B Wrath 【差分】
- Codeforces 892B Wrath (递推)
- Codeforces Round #446 (Div. 2)B. Wrath
- 趣味题:杀人范围 codeforces B. Wrath
- Codeforces Round #446 (Div. 2) B. Wrath (贪心)
- CodeForces892B Wrath
- Codeforces-446(Div.2)-B-Wrath--(线段树区间更新)
- Codeforces Round #446 (Div. 2) B. Wrath(线段树,RMQ,区间最值)
- CodeForce 446 Div.2 Wrath
- B. Wrath (思路题目)
- 一个人学习真的太累了,但是还得熬,总结之后继续go
- JQuery解析XML(学习日记)
- HTML基础(二)
- 二叉搜索树操作集
- 动态规划解337. House Robber III
- Wrath CodeForces
- hive内部表和外部表的区别
- 数据结构——二叉堆
- Excel2016制作动态图表
- sprite动画精灵中主要及常用的变量
- 获得当前目录的信息:dirname()、basename()、disk_free_space() 和 scandir()函数
- GitHub:仓库的创建与分支合并
- 1058. 选择题(20)
- C语言学习知识点(四):数组名a与取地址数组名&a的区别