• HDU


    One day, Kaitou Kiddo had stolen a priceless diamond ring. But detective Conan blocked Kiddo's path to escape from the museum. But Kiddo didn't want to give it back. So, Kiddo asked Conan a question. If Conan could give a right answer, Kiddo would return the ring to the museum.
    Kiddo: "I have an array A and a number k , if you can choose exactly k elements from A and erase them, then the remaining array is in non-increasing order or non-decreasing order, we say A is a magic array. Now I want you to tell me whether A is a magic array. " Conan: "emmmmm..." Now, Conan seems to be in trouble, can you help him?

    InputThe first line contains an integer T indicating the total number of test cases. Each test case starts with two integers n and k in one line, then one line with n integers: ,n  A1,A2…An .
    1T20 1≤T≤20
    1n10 5  1≤n≤105
    0k0≤k≤n
    110 5  1≤Ai≤105
    OutputFor each test case, please output "A is a magic array." if it is a magic array. Otherwise, output "A is not a magic array." (without quotes).
    Sample Input

    3
    4 1
    1 4 3 7
    5 2
    4 1 3 1 2
    6 1
    1 4 3 5 4 6

    Sample Output

    A is a magic array.
    A is a magic array.
    A is not a magic array.
    #include<bits/stdc++.h>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    const int maxn=100010;
    int a[maxn],b[maxn];
    int main()
    {
        int T,N,K,cnt,pos;
        scanf("%d",&T);
        while(T--){
            scanf("%d%d",&N,&K);
            rep(i,1,N) scanf("%d",&a[i]);
            cnt=0;
            rep(i,1,N) pos=upper_bound(b+1,b+cnt+1,a[i])-b,b[pos]=a[i],cnt=max(pos,cnt);
            if(cnt+K>=N) puts("A is a magic array.");
            else {
                reverse(a+1,a+N+1);
                cnt=0;
                rep(i,1,N) pos=upper_bound(b+1,b+cnt+1,a[i])-b,b[pos]=a[i],cnt=max(pos,cnt);
                if(cnt+K>=N) puts("A is a magic array.");
                else puts("A is not a magic array.");
            }
        }
        return 0;
    }
  • 相关阅读:
    POJ 2411 Mondriaan's Dream -- 状压DP
    codeforces 792A-D
    codeforces 796A-D
    Acdream1201 SuSu's Power
    HDU 2818 Building Block
    C# NetStream
    基于Duff's Device的C简易无栈协程实现
    CentOS 多版本 GCC 共存
    2017杭电多校第一场
    2019杭电多校第十场
  • 原文地址:https://www.cnblogs.com/hua-dong/p/9814500.html
Copyright © 2020-2023  润新知