• codeforces-892B Wrath


    Wrath

    time limit per test2 seconds
    memory limit per test256 megabytes
    inputstandard input
    outputstandard output
    Hands that shed innocent blood!


    There are n guilty people in a line, the i-th of them holds a claw with length Li. The bell rings and every person kills some of people in front of him. All people kill others at the same time. Namely, the i-th person kills the j-th person if and only if j < i and j ≥ i - Li.


    You are given lengths of the claws. You need to find the total number of alive people after the bell rings.


    Input
    The first line contains one integer n (1 ≤ n ≤ 106) — the number of guilty people.


    Second line contains n space-separated integers L1, L2, ..., Ln (0 ≤ Li ≤ 109), where Li is the length of the i-th person's claw.


    Output
    Print one integer — the total number of alive people after the bell rings.


    Examples
    input
    4
    0 1 0 10
    output
    1
    input
    2
    0 0
    output
    2
    input
    10
    1 1 3 0 0 0 2 1 0 3
    output
    3
    Note
    In first sample the last person kills everyone in front of him.

    题意:第i个人可以开枪杀死它之前的a[i]个人。最后求出活下来的人的个数。

    思路:模拟。。。(错了一万次。。。)

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    #include<string>
    #include<map>
    #define ll long long
    using namespace std;
    ll a[1000010];
    int main()
    {
        ll n;
       scanf("%lld",&n);
        for(ll i=1; i<=n; i++)
         scanf("%lld",&a[i]);
        if(a[n]>=n-1)
        {
            cout<<1<<endl;
            return 0;
        }
        ll l=n,r=n,ans=0;
        for(ll j=n; j>=1; j--)
        {
            if(a[j]>0)
            {
                ll x=min(a[j],j);
                l=min(l,j-x);
                if(l<=0)
                    l=1;
                if(l<r)
                    ans+=(min(j,r)-l);
                r=l;//cout<<l<<" "<<j<<" "<<ans<<endl;
    
            }
        }
        cout<<n-ans<<endl;
    }





  • 相关阅读:
    bzoj 1295 [SCOI2009]最长距离 最短路
    bzoj 3669 [Noi2014]魔法森林
    bzoj 1432 [ZJOI2009]Function 思想
    用JSP输出Hello World
    Web开发基础
    JSP相关背景
    JSP概述
    Java视频播放器的制作
    为JFileChooser设定扩展名过滤
    使用JFileChooser保存文件
  • 原文地址:https://www.cnblogs.com/da-mei/p/9053290.html
Copyright © 2020-2023  润新知