• 洛谷P1020 导弹拦截


    题目描述

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

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

    输入格式

    11行,若干个整数(个数le 100000100000)

    输出格式

    22行,每行一个整数,第一个数字表示这套系统最多能拦截多少导弹,第二个数字表示如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

    题解:求一个最长不上升子序列,和最长不下降子序列最小划分数即Diworth定理

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 
     6 using namespace std;
     7 
     8 int dp[10000005],h[10000005];
     9 int n,len;
    10 
    11 int main()
    12 {
    13     while(~scanf("%d",&h[++n]));
    14     n--;
    15     dp[0]=2147483647;
    16     for(int i=1;i<=n;i++)
    17     {
    18         if(h[i]<=dp[len]) dp[++len]=h[i];
    19         else
    20         {
    21             int head=1,tail=len;
    22             while(head<tail)
    23             {
    24                 int mid=(head+tail)>>1;
    25                 if(dp[mid]>=h[i]) head=mid+1;
    26                 else tail=mid;
    27             }
    28             dp[head]=max(dp[head],h[i]);
    29         }
    30     } 
    31     printf("%d
    ",len);
    32     memset(dp,0,sizeof(dp));
    33     len=0;
    34     for(int i=1;i<=n;i++)
    35     {
    36         if(h[i]>dp[len]) dp[++len]=h[i];
    37         else
    38         {
    39             int head=1,tail=len;
    40             while(head<tail)
    41             {
    42                 int mid=(tail+head)>>1;
    43                 if(dp[mid]>=h[i]) tail=mid;
    44                 else head=mid+1;
    45             }
    46             dp[head]=min(h[i],dp[head]);
    47         }
    48     }
    49     printf("%d",len);
    50     return 0;
    51 } 
  • 相关阅读:
    Map集合
    MySql函数之CONCAT、CONCAT_WS、GROUP_CONCAT函数详解
    mysql字符串转数字排序
    阿里巴巴Json工具Fastjson教程
    tf.set_shape
    numpy切片X[:,0]和X[:,1]
    numpy索引和切片 np.newaxis np.arange
    tf.cast()用于张量数据类型的转换
    自监督
    在神经网络中bias偏置有什么作用?
  • 原文地址:https://www.cnblogs.com/Hoyoak/p/11393194.html
Copyright © 2020-2023  润新知