• 2017 ACM/ICPC Asia Regional Shenyang Online array array array


    Problem Description
    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?

    题意:去掉一些数字。可以保证是不严格递增或者递减

    解法:

    求一波最长就行了

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<bitset>
     6 #include<vector>
     7 #include<cmath>
     8 #include<bitset>
     9 #include<map>
    10 using namespace std;
    11 const int N=123456;
    12 int b[N];
    13 int LIS1(int a[], int n) {
    14   int len = 1; b[0] = a[0];
    15   for (int i = 1; i < n; i++) {
    16     b[a[i] >= b[len - 1] ? len++ : upper_bound(b, b + len, a[i]) - b] = a[i]; 
    17   }
    18   return len;
    19 }
    20 int LIS2(int a[], int n) {
    21   int len = 1; b[0] = a[0];
    22   for (int i = 1; i < n; i++) {
    23     b[a[i] <= b[len - 1] ? len++ : lower_bound(b, b + len, a[i]) - b] = a[i]; 
    24   }
    25   return len;
    26 }
    27 int a[N];
    28 int c[N];
    29 int main()
    30 {
    31     int t;
    32     scanf("%d",&t);
    33     while(t--){
    34        int n,k;
    35        scanf("%d%d",&n,&k);
    36        for(int i=0;i<n;i++){
    37         scanf("%d",&b[i]);
    38         }
    39         int x=LIS1(b,n);
    40         int y=LIS2(b,n);
    41         if(x+k>=n||y+k>=n){
    42             cout<<"A is a magic array."<<endl;
    43         }else{
    44             cout<<"A is not a magic array."<<endl;
    45         }
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    小程序发展史
    ES6内置方法find 和 filter的区别在哪
    微信小程序开发踩坑记录
    小程序导航跳转一不小心踩进的坑
    谈谈如何对后台登陆界面进行渗透
    应急响应学习笔记
    php学习笔记
    代码审计学习笔记
    注入笔记(非sql注入)
    python安全编程学习
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/7550323.html
Copyright © 2020-2023  润新知