Codeforces 892B Wrath (递推)
来源:互联网 发布:.top域名为什么便宜 编辑:程序博客网 时间:2024/06/03 18:11
题目链接:点击打开链接
题目大意:每个人手里都有一个武器,武器的长度决定他们可以杀死前面多少个人的人数,只要铃声响起就可以开始刺杀,问铃声落下后,还有多少人活着?
解题思路:一开始我用暴力去写,抱着试试的心态,结果意料之中的TLE,然后还是死磕着从左往右遍历,但是想不出,然后想着从右往左,依次遍历,根据题意,最右边的人一定不会死,所有从他手里的武器的长度入手,开个变量依次维护可刺杀人数的最大值,即:更新武器可以达到的最大长度
代码如下:
#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const int maxn=1e6;int n,sum;ll a[maxn];int main(){ while(cin>>n) { int i,j; sum=0; for(i=0; i<n; i++) { cin>>a[i]; } if(a[n-1]>=n) { sum=1; cout<<sum<<endl; continue; } ll len=-1; for(i=n-1; i>=0; i--) { ll cnt=a[i]; if(len>=0) a[i]=-1; //由右到左递推出能刺杀的最大值,依次维护 len=max(len,cnt); len--; } for(i=0; i<n; i++) { if(a[i]!=-1) sum++; } cout<<sum<<endl; } return 0;}
~step by step
阅读全文
0 0
- Codeforces 892 B. Wrath (递推)
- Codeforces 892B Wrath (递推)
- Codeforces 892B. Wrath
- CodeForces 892B Wrath
- codeforces-892B Wrath
- codeforces 892B. Wrath
- Codeforces 892B Wrath 【差分】
- Codeforces Round #446 (Div. 2) B Wrath
- Codeforces Round #446 (Div. 2) B.Wrath
- Codeforces Round #446 (Div. 2)B. Wrath
- 趣味题:杀人范围 codeforces B. Wrath
- Wrath CodeForces
- codeforces 289B 递推
- Codeforces Round #446 (Div. 2) B. Wrath (贪心)
- CodeForces 615B Longtail Hedgehog 递推
- CodeForces 429B Working out 递推
- Codeforces-446(Div.2)-B-Wrath--(线段树区间更新)
- Codeforces Round #446 (Div. 2) B. Wrath(线段树,RMQ,区间最值)
- ElGamal 加密(利用Gmp计算)
- 【数据结构】队列和栈 Python 实现
- Vector
- 棋盘覆盖java代码
- Java【集合系列】-01-总体框架
- Codeforces 892B Wrath (递推)
- Qt_类型转换
- 22.开源项目--git
- 计算机视觉简介:历史、现状和发展趋势
- 欢迎使用CSDN-markdown编辑器
- 优达机器学习:学习曲线与模型复杂度
- 一位10年Java工作经验的架构师聊Java和工作经验
- CCF CSP 201604-1 折点计数
- Hadoop/Hbase在windows下的安装笔记