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

    http://acm.hdu.edu.cn/showproblem.php?pid=6197

    题意:给你一个数组 然后给你一个k  让你从数组里面剔除k个数  使得剩余的数组 是 单调非递减  或 单调非递增的

    判断可不可能

    思路 : 直接写LIS  然后判断 n-k 和 LIS 长度的大小关系

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1e5+100;
    const int INF = 0x3f3f3f3f;
    int n,m;
    int s[maxn];
    int cnt[maxn];
    
    int main ()
    {
        ios::sync_with_stdio(false);
        int t;
        cin >> t;
        while (t--){
            cin >> n >> m;
            for(int i=1;i<=n;i++)
                cin >> s[i];
            fill(cnt,cnt+n,INF);
            for(int i=1;i<=n;i++)
            {
                *upper_bound(cnt,cnt+n,s[i]) = s[i];
            }
            int len1 = lower_bound(cnt,cnt+n,INF) - cnt;
            fill(cnt,cnt+n,INF);
            for(int i=n;i>=1;i--)
            {
                *upper_bound(cnt,cnt+n,s[i]) = s[i];
            }
            int len2 = lower_bound(cnt,cnt+n,INF) - cnt;
            int ans = max(len1,len2);
            if(n-m > ans)
                puts("A is not a magic array.");
            else
                puts("A is a magic array.");
        }
    }
  • 相关阅读:
    java如何编写多线程
    Java调用dll动态库
    HashMap源码解析
    LinkedList源码解析
    ArrayList源码解析
    springboot配置cxf
    java生成二维码
    原生js--跨域消息传递
    原生js--应用程序存储和离线web应用
    原生js--userData
  • 原文地址:https://www.cnblogs.com/Draymonder/p/7502698.html
Copyright © 2011-2022 走看看