zoukankan      html  css  js  c++  java
  • 【Codeforces Global Round 9 C】Element Extermination

    题目链接

    点我呀

    翻译

    给你一个排列,你每次可以将 (a[i]<a[i+1]) 中的 (a[i]) 或者 (a[i+1]) 删掉。

    问你,最后能不能删得只剩下 (1) 个元素。

    题解

    考虑最大的元素 (n), 想想它是不是能一直往左删元素?

    但是删到第一个元素的时候,就不能再删了,因为 (n) 可能不是最后一个元素,如果再删的话,就没有

    其他元素能删掉 (n) 了, 没办法这个时候只能保留第一个元素然后把 (n) 给删掉了。

    然后接着找 (n) 右边的次大的元素 (x) ((n) 左边只剩第一个数字了),也重复进行删除元素操作。

    如果 (x) 不是最右边那个元素的话,仍然不能删掉第一个元素... 依次类推

    不难发现,只要排列的最后一个元素是大于第一个元素的,那么最后一定能轮到这个 (a[n]) 进行这样的

    步骤,就能删掉第一个元素,只剩一个元素 (a[n]) 啦。

    如果最后一个元素小于第一个元素,根据上面的过程可以发现,第一个元素没办法被删除。

    神奇的一道题。

    代码

    #include <cstdio>
    using namespace std;
     
    const int N = 3e5;
     
    int T, n;
    int a[N + 10];
     
    int main(){
        scanf("%d",&T);
        while (T--){
            scanf("%d",&n);
            for (int i = 1;i <= n; i++){
                int x;
                scanf("%d",&a[i]);
            }
            if (a[n] > a[1]){
                puts("YES");
            }else{
                puts("NO");
            }
        }
        return 0;
    }
    
  • 相关阅读:
    Servlet & JSP
    Servlet & JSP
    Servlet & JSP
    Servlet & JSP
    Servlet & JSP
    Servlet & JSP
    Table of Contents
    Commons Codec
    14.Longest Common Prefix
    628.Maximum Product of Three Numbers
  • 原文地址:https://www.cnblogs.com/AWCXV/p/13269706.html
Copyright © 2011-2022 走看看