牛客NC14361 - 拦截导弹

简介: 牛客NC14361 - 拦截导弹

拦截导弹

题目描述

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


输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

输入描述:

一行,为导弹依次飞来的高度

输出描述:

两行,分别是最多能拦截的导弹数与要拦截所有导弹最少要配备的系统数

题目没说,其实数据是1e5 的大小 (我开始还特意写了3e6的大小)

dp题目,我本来还以为有什么很好的解法,题目很难来着,结果其实就是暴力

分两问看:

  1. 第一问相当于是求最大上升子序列 (下降)
  2. 第二问需要归纳,我们发现,每一次从大到小去找非递增子序列(符合条件就加进去,不符合就跳过) ,和你每一次都去找最长的非递增子序列,其实结果是一样的…(是真无语啊,我还以为是啥算法呐,开始想出来这个,没敢写,送感觉会卡…)
#include<iostream>
#include<deque>
using namespace std;
const int N = 3e5+10;

int a[N];
int dp[N];
bool vis[N];

// 1e5 的数据大小

int main() {
  int n=0,x,mx=0;
  while(cin>>x) {
    a[++n]=x;
    for(int j=n;j>=1;j--) {
      if(a[n]<=a[j]) dp[n]=max(dp[n],dp[j]+1);
    }
        mx=max(mx,dp[n]);
  }
//     for(int i=1;i<=n;i++) cout<<"a["<<i<<"]:"<<a[i]<<endl;
//     for(int i=1;i<=n;i++) cout<<"dp["<<i<<"]:"<<dp[i]<<endl;
  cout<<mx<<endl;
  int cn=0;
  int an=0;
  while(true) {
    int mi = 40000;
    an++;
    for(int i=1;i<=n;i++) {
      if(!vis[i] && a[i]<=mi) {
        mi = a[i];
        cn++;
        vis[i]=true;
      }
    }
    if(cn == n) break;
  }
  cout<<an<<endl;
  return 0;
} 


目录
相关文章
|
9月前
|
机器学习/深度学习
一篇文章讲明白hdu5698百度之星2016round2b第3题
一篇文章讲明白hdu5698百度之星2016round2b第3题
57 4
|
10月前
|
算法 C语言
【牛客-算法】NC56 回文数字
🚩 前言 🔥 该专栏作为算法题笔记,记录算法的思路、遇到的问题,以及能跑的代码,持续更新中! 🔥 推荐一款面试、刷题神器牛客网:👉开始刷题学习👈
76 0
|
10月前
|
存储 算法 Java
【牛客-算法】NC57 反转数字
题目描述 原题:NC57 反转数字 描述 给定一个32位的有符号整数num,将num中的数字部分反转,最后返回反转的结果 1.只反转数字部分,符号位部分不反转
59 0
|
安全 Go
每日一题 --- 2100. 适合打劫银行的日子[力扣][Go]
每日一题 --- 2100. 适合打劫银行的日子[力扣][Go]
每日一题 --- 2100. 适合打劫银行的日子[力扣][Go]
|
缓存 网络协议 Unix
网络协议分析02(zhuan 程震老师 用于期末复习)
网络协议分析02(zhuan 程震老师 用于期末复习)
142 0
网络协议分析02(zhuan 程震老师 用于期末复习)
|
存储 缓存 网络协议
网络协议分析03(zhuan 程震老师 用于期末复习)
网络协议分析03(zhuan 程震老师 用于期末复习)
160 0
网络协议分析03(zhuan 程震老师 用于期末复习)
|
算法 C++
【牛客-算法】NC52 有效括号序列
【牛客-算法】NC52 有效括号序列
196 0
【牛客-算法】NC52 有效括号序列
|
算法 C语言
【牛客刷题-算法】NC103 反转字符串
【牛客刷题-算法】NC103 反转字符串
95 0
【牛客刷题-算法】NC103 反转字符串
|
算法 Java 物联网
【牛客刷题-算法】NC151 最大公约数
【牛客刷题-算法】NC151 最大公约数
119 0
【牛客刷题-算法】NC151 最大公约数