zoukankan      html  css  js  c++  java
  • 1161-飞弹

    描述

    飞弹能够沿固定方向摧毁高度递减的目标。现在已知一直线上从左到右各个目标的高度。需要你求出飞弹最多能够摧毁多少目标。飞弹自最左端发射,起始高度任意,从左至右摧毁目标。

    输入

    第一行是一个正整数n(1<=n<=1000)代表直线上目标的个数。接下来是n行,每行一个整数hi(1<=hi<=100000),代表第i个目标的高度。

    输出

    一次性最多摧毁的目标数量。

    样例输入

    3

    1

    3

    2

    样例输出

    2

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int n,*a,*count,i,j,max;
        cin>>n;
        a=new int[n];
        count=new int[n];
        for(i=0;i<n;i++)
        {
            cin>>a[i];
            count[i]=1;
        }
        for(i=n-1;i>=0;i--)
        {
            max=0;
            for(j=i+1;j<n;j++)
                if(a[j]<a[i]&&max<count[j]) 
                    max=count[j];
            count[i]+=max;
        }
        for(i=0;i<n;i++)
        {
            if(max<count[i])
                max=count[i];
        }
        cout<<max<<endl;
        return 0;
    } 
    

      

  • 相关阅读:
    云计算和SOA何时走到了一起?
    MVP
    Mvp
    Technology Radar of thoughtworks
    JSF
    我们要积极学习互联网的用户体验
    Gwt
    数字的字符串处理
    C语言字符串函数大全(转自百度百科)
    树状数组
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3436970.html
Copyright © 2011-2022 走看看