• hdu 6197 array array array


    题意:给出n,k,长度为n的数列,问是否可以删除k个使得整个数列变成递增的数列或者递减的,不是严格的(即可以为 1  3 3 4)

    思路:我们求个最长的递增子序列,看是不是n-k<=(最长子序列),反之亦然

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=1e5+10;
     5 
     6 int a[N];
     7 int dp[N];
     8 int main()
     9 {
    10     int t;
    11     cin>>t;
    12     while(t--)
    13     {
    14         int n,k;
    15         scanf("%d%d",&n,&k);
    16         for(int i=1; i<=n; i++)
    17         {
    18             scanf("%d",&a[i]);
    19         }
    20         memset(dp,127,sizeof(dp));
    21         int l2=0;
    22         for(int i=1; i<=n; i++)
    23         {
    24             int kk=upper_bound(dp+1,dp+1+n,a[i])-dp;
    25             l2=max(l2,kk);
    26             dp[kk]=a[i];
    27         }
    28         if(n-k<=l2){
    29             cout<<"A is a magic array."<<endl;continue;
    30         }
    31         memset(dp,127,sizeof(dp));
    32         int r2=0;
    33         for(int i=n;i>=1;i--)
    34         {
    35             int kk=upper_bound(dp+1,dp+1+n,a[i])-dp;
    36             r2=max(r2,kk);
    37             dp[kk]=a[i];
    38         }
    39         if(n-k<=r2){
    40              cout<<"A is a magic array."<<endl;continue;
    41         }
    42         cout<<"A is not a magic array."<<endl;
    43     }
    44 }
  • 相关阅读:
    git, tornado 小计
    算法小计-列表排列
    CMDB小计1
    linux 中mysql的主从复制
    SQL语句的种类
    mysql的结构,段页区,及客户端命令
    mysql的程序结构,实例, 及mysql的多实例
    在linux中操作mysql误删root用户的应对方法
    MySQL面试
    linux下载安装mysal
  • 原文地址:https://www.cnblogs.com/hhxj/p/7505202.html
Copyright © 2020-2023  润新知