zoukankan      html  css  js  c++  java
  • hdu 6197 array array array

    https://vjudge.net/contest/184514#problem/D

    题意:

    给出一个数组和一个数字k,问去掉k个数字之后这个数列能否非递增或者非递减。

    思路:

    智障了,这种应该一眼就看出来嘛,还去求逆序数。。。求一遍最长不下降子序列和最长不上升子序列,只要数组的长度减去其中任何一个小于等于k的话,那么就说明去掉k个数就肯定满足题中的一个条件。

    nlogn的LIS。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 int a[100005];
     7 int b[100005];
     8 int c[100005];
     9 
    10 int main()
    11 {
    12     int t;
    13 
    14     scanf("%d",&t);
    15 
    16     while (t--)
    17     {
    18         int n,k;
    19 
    20         scanf("%d%d",&n,&k);
    21 
    22         for (int i = 0;i < n;i++)
    23         {
    24             scanf("%d",&a[i]);
    25         }
    26 
    27         b[0] = a[0];
    28 
    29         int cnt1 = 1;
    30 
    31         for (int i = 1;i <= n;i++)
    32         {
    33             if (a[i] > b[cnt1-1]) b[cnt1++] = a[i];
    34             else
    35             {
    36                 int pos = lower_bound(b,b+cnt1,a[i]) - b;
    37                 b[pos] = a[i];
    38             }
    39         }
    40 
    41         int cnt2 = 1;
    42 
    43         for (int i = 0;i < n;i++)
    44         {
    45             b[n - i - 1] = a[i];
    46         }
    47 
    48         c[0] = b[0];
    49 
    50         for (int i = 1;i < n;i++)
    51         {
    52             if (b[i] > c[cnt2-1]) c[cnt2++] = b[i];
    53             else
    54             {
    55                 int pos = lower_bound(c,c+cnt2,b[i]) - c;
    56                 c[pos] = b[i];
    57             }
    58         }
    59 
    60         //printf("%d %d
    ",cnt1,cnt2);
    61 
    62         if (n - cnt1 <= k || n - cnt2 <= k) printf("A is a magic array.
    ");
    63         else printf("A is not a magic array.
    ");
    64     }
    65 
    66     return 0;
    67 }
  • 相关阅读:
    工具-pycharm-Git管理代码到GitHub
    工具-jenkins配置项目
    工具-jenkins重启服务
    工具-jenkins安装
    pycharm-管理GitHub
    博客园样式DIY
    接口测试-获取邮件授权码口令
    iOS 反射 学习 和 运用
    iOS 优化界面流畅度的探讨
    iOS 事件响应者链的学习(也有叫 UI连锁链)
  • 原文地址:https://www.cnblogs.com/kickit/p/7507594.html
Copyright © 2011-2022 走看看