zoukankan      html  css  js  c++  java
  • hdoj--1257--最少拦截系统(动态规划)

    Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u

    Status

    Description

    某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
    怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
     

    Input

    输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
     

    Output

    对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
     

    Sample Input

    8 389 207 155 300 299 170 158 65
     

    Sample Output

    2 求最长非递减序列,在这个序列中,每两个导弹是无法共用同一个系统的
    #include<stdio.h>
    int dp[1100],a[1100],n;
    int main()
    {
        while(scanf("%d",&n)!=EOF)
    	{
            int ans=0,i,j;
            for(i=0;i<n;i++)
    		{
    		    scanf("%d",&a[i]);
    		    dp[i]=1;
    		    for(j=i-1;j>=0;j--)
    		    if(a[i]>a[j]&&dp[j]+1>dp[i])
    		    dp[i]=dp[j]+1;
    		    ans=ans>dp[i]?ans:dp[i];
            }
            printf("%d
    ",ans);
        }
    }


  • 相关阅读:
    javaweb 最简单的分页技术
    Jquery选择器小结
    JSON 初探
    C# GridView 的使用
    C# 操作数据库
    Java中String为什么是不可变
    Eclipse使用技巧小结
    Java File类方法使用详解
    JSP基础语法总结
    JSP取得绝对路径
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273793.html
Copyright © 2011-2022 走看看