zoukankan      html  css  js  c++  java
  • HDU 1257 最少拦截系统(dp)

    Problem Description
    某国为了防御敌国的导弹突击,发展出一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度,可是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.因为该系统还在试用阶段,所以仅仅有一套系统,因此有可能不能拦截全部的导弹.
    怎么办呢?

    多搞几套系统呗!你说说倒蛮easy,成本呢?

    成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少须要多少套拦截系统.

     

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

    Output
    相应每组数据输出拦截全部导弹最少要配备多少套这样的导弹拦截系统.
     

    Sample Input
    8 389 207 155 300 299 170 158 65
     

    Sample Output
    2
     

    Source
     


    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<cstdio>
    #include<queue>
    #include<stack>
    using namespace std;
    
    #define N 30005
    
    int n,k,a[N];
    
    inline int fdd(int x)
    {
    	for(int i=0;i<=k;i++)
    	{
    		if(i==k)
    		{
    			a[k++]=x;
    			return 1;
    		}
    
    		if(a[i]>=x)
    		{
    			a[i]=x;
    			return 0;
    		}
    	}
    }
    
    int main()
    {
    	int i;
    	while(~scanf("%d",&n))
    	{
    		k=0;
    		int ans=0,x;
    		while(n--)
    		{
    			scanf("%d",&x);
    			if(fdd(x))
    			  ans++;
    		}
    		printf("%d
    ",ans);
    	}
     return 0;
    }
    





  • 相关阅读:
    软工作业01 P18 第四题
    自我介绍
    进行代码复审训练
    源代码管理工具调查
    软工作业PSP与单元测试训练
    进行代码复审训练
    源代码管理工具
    软工作业PSP与单元测试训练
    作业
    第一堂课
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6814300.html
Copyright © 2011-2022 走看看