防御导弹

1151: 防御导弹

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 292  Solved: 43

Description


国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截
系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试
用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

Input

最多20个整数,分别表示导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数)

Output

整数M。表示:这套系统最多能拦截 M 枚导弹.

Sample Input

300 250 275 252 200 138 245

Sample Output

5

Source

吉首大学软件学院

和最长递增子序列类似

#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
const int N=30010;
int dp[N];
int main()
{
    int a[23];
    int n=1,k;
    while(scanf("%d",&a[n])!=EOF)//要停的时候ctrl+z
    {
        n++;
    }
    memset(dp,0,sizeof(dp));
    dp[1]=1;
    for(int i=2;i<n;i++)//之前n最后还加了1;
    {  k=-1;
        for(int j=1;j<i;j++)
        {
            if(a[i]<=a[j]&&dp[j]>k)
            {
                k=dp[j];
            }
        }
        dp[i]=k+1;
    }
    k=dp[1];
    for(int i=2;i<n;i++)
    {
      if(k<dp[i])
        k=dp[i];//找最大值
       // printf("%d\n",dp[i]);
    }
    printf("%d\n",k);
    return 0;
}
时间: 2024-12-27 08:29:45

防御导弹的相关文章

防御导弹算法

算法效率绝对是最烂的(大鸟无喷),时间空间效率完全没有考虑,但是可能是最直观的,最白痴的思路.没有运用XXX算法思想,就是保证没读过算法相关书籍的任何人都能读懂. 题目出处:http://www.programfan.com/acm/show.asp?qid=5 题目如下: 防御导弹 Problem 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统. 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度. 某天,雷达捕捉到敌国的导弹来袭

FatMouse&#39;s Speed hdu 1160(动态规划,最长上升子序列+记录路径)

http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意:现给出老鼠的体重与速度,要求你找出符合要求的最长子序列.       要求是 W[m[1]] < W[m[2]] < ... < W[m[n]](体重) && S[m[1]] > S[m[2]] > ... > S[m[n]] (速度) 分析:有两个变量的话比较不好控制,自然需要先排序.再仔细思考的话,觉得和之前做的防御导弹有点类似,都是求最多能有几个符合

1048: 导弹防御系统

1048: 导弹防御系统 时间限制: 1 Sec  内存限制: 128 MB提交: 836  解决: 349[提交][状态][讨论版] 题目描述 某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹.拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹. 输入

bzoj3035: 导弹防御塔

Description Freda的城堡——“Freda,城堡外发现了一些入侵者!”“喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~”“可是入侵者已经接近城堡了呀!”“别担心,rainbow,你看呢,这是我刚设计的导弹防御系统的说~”“喂...别卖萌啊……” Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚导弹的防御塔需要T2分钟来冷却.所有导弹都有相同的匀速飞

2016级算法第三次上机-F.ModricWang的导弹防御系统

936 ModricWang的导弹防御系统 思路 题意即为:给出一个长度为n的序列,求出其最长不降子序列. 考虑比较平凡的DP做法: 令\(nums[i]\) 表示这个序列,\(f[x]\) 表示以第\(x\)个数为结尾的最长的不降子序列的长度,状态转移方程为: \[ f[i]=(\max{f[j]}+1) \;\;\;\;\;\;\; \mbox{when $nums[i]<=nums[j]$}\\] f中的最大值即为答案. 时间复杂度\(O(n^2)\),空间复杂度\(O(n)\) 当然也可

[tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)

传送门 Description Freda控制着N座可以发射导弹的防御塔.每座塔都有足够数量的导弹,但是每座塔每次只能发射一枚.在发射导弹时,导弹需要T1秒才能从防御塔中射出,而在发射导弹后,发射这枚导弹的防御塔需要T2分钟来冷却. 所有导弹都有相同的匀速飞行速度V,并且会沿着距离最短的路径去打击目标.计算防御塔到目标的距离Distance时,你只需要计算水平距离,而忽略导弹飞行的高度.导弹在空中飞行的时间就是 (Distance/V) 分钟,导弹到达目标后可以立即将它击毁. 现在,给出N座导弹

CH6803 导弹防御塔

6803 导弹防御塔 0x60「图论」例题 背景 Freda的城堡-- "Freda,城堡外发现了一些入侵者!" "喵...刚刚探究完了城堡建设的方案数,我要歇一会儿嘛lala~" "可是入侵者已经接近城堡了呀!" "别担心,rainbow,你看呢,这是我刚设计的导弹防御系统的说~" "喂...别卖萌啊--" 描述 Freda的城堡遭受了M个入侵者的攻击!Freda控制着N座导弹防御塔,每座塔都有足够数量的

AcWing374 导弹防御塔

二分图 此题看书的时候觉得特别难,实际的代码却非常简单 现在分析是什么让代码如此简单的: 首先预处理出第i个防御塔发射第j个导弹的时间(计算发射时间,不计冷却时间) 二分答案,判断时间mid内能否解决问题 利用vector建边,不用管标号的冲突,在二分图中十分方便(一般网络流可能就没办法了) 时间复杂度:\(O(n^4*log(T))\) 实际更快 #include<bits/stdc++.h> using namespace std; #define go(i,a,b) for(int i=

导弹拦截

题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统. 输入输出格式 输入格式: 一行,若干个正整数最多100个. 输