首页 > 其他分享 >Codeforces Round #852 (Div. 2) C. Dora and Search

Codeforces Round #852 (Div. 2) C. Dora and Search

时间:2023-02-15 14:57:13浏览次数:28  
标签:Search 852 -- 最大值 Codeforces else ++ 移除 序列

https://codeforces.com/contest/1793/problem/C

 

 

我们考虑进行构造。不难发现,对于一个序列,如果它的左端点不是整个序列的最大值,那么无论在序列的右边加怎么样的值,它的左端点仍然不可能是整个序列的最大值。对于最小值或者右端点都是一个道理。

考虑从这个序列从头和尾两个部分移除元素。对于当前状态,只要两头是整个序列的最大值或者最小值,就把它从序列中移除,直到序列空了或者无法拿出。如果存在,显然这就是我们需要的序列的其中一个。

尝试论证:如果序列删完了,那么原来的序列就不存在满足性值的子序列。不妨假设有这个序列 [l, r],那么根据前面提到的性值,l 位置上的数字不是这个子序列的最大值或者最小值,因此也不会是 [l, k] (k >= r - 1) 序列的最大值或者最小值。所以,只要 r - 1 位置上的数字没有被移除,l 位置上的数字也不会被移除。同理,只要 l + 1 位置上的数字没有移除,r 位置上的数字也不会被移除。在两个条件的互锁下,在每次删除序列元素的时候,l 位置上的元素和 r 位置上的元素都不会被删除,和一开始“序列删完了”的条件不符。于是我们证明了上面的命题。 作者:tiger_2005 https://www.bilibili.com/read/cv21786337 出处:bilibili

int A[200010];
int main(){
    multiCase () {
        int N;
        cin >> N;
        readI(1, N, A);
        int l = 1, r = N, L = 1, R = N;
        while (r >= l) {
            if (A[l] == L) {
                ++ l, ++ L;
            }
            else if (A[r] == L) {
                -- r, ++ L;
            }
            else if (A[l] == R) {
                ++ l, -- R;
            }
            else if (A[r] == R) {
                -- r, -- R;
            }
            else
                break;
        }
        if (r >= l)
            printf("%d %d\n", l, r);
        else
            printf("-1\n");
    }
    return 0;
} 

 

标签:Search,852,--,最大值,Codeforces,else,++,移除,序列
From: https://www.cnblogs.com/acmLLF/p/17122966.html

相关文章

  • ElasticSearch学习总结
     //查询结果的排序,.missing("_last")https://doc.yonyoucloud.com/doc/mastering-elasticsearch/chapter-2/25_README.html//ES多字段匹配查询时的权重控制,multiMatc......
  • 直播系统搭建,docker Elasticsearch 7.16.1 设置密码
    直播系统搭建,dockerElasticsearch7.16.1设置密码1、启动容器 dockerrun-d-p9200:9200-p9300:9300--hostnamees--networkseata_default-e"discovery.typ......
  • Codeforces Round #852 (Div. 2) D - Moscow Gorillas
    https://codeforces.com/contest/1793/problem/D不妨枚举MEX(...)的值x。此时对于序列[l,r],需要满足:两个序列的1到x-1都在这个区间内,并且x都不在这个区间内......
  • filebeat+elasticsearch+kibana
    一、到elasticsearch官网下载filebeat+elasticsearch+kibanahttp://www.elasticsearch.cn/ 二、新增fbeat用户tar-xzvffilebeat-7.16.3-linux-x86_64.tar.gz-C......
  • elasticsearch之日期类型有点怪
    一、Date类型简介elasticsearch通过JSON格式来承载数据的,而JSON中是没有Date对应的数据类型的,但是elasticsearch可以通过以下三种方式处理JSON承载的Date数据符合特定格......
  • elasticsearch安装。(含有自己的安装包链接)
    下载elasticsearch安装包我用的是版本是elasticsearch-7-15-0,点击链接下载对应的系统的压缩包。下载完成之后是一个压缩包将压缩包压缩到你自己需要的文件夹中 注......
  • vuepress v1.x实现meilisearch全文搜索功能
    说明  以个人网站:https://note-taking.cn/为例。  我实现的可以说是最简单的方式(使用宝塔进行服务器操作)。参考链接:https://wiki.eryajf.net/pages/dfc792/一、......
  • python re.match() / re.search() / re.findall()
    re.match函数re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。re.search方法re.search扫描整个字符串并返回第一个成......
  • Elasticsearch 备份和恢复
    Elasticsearch最少必要知识实战教程直播回放1、问题引出ES中文社区中,有如下问题:问题1:存储数据,data目录从一个机器直接移到一台新的机器是否可以直接使用?问题2:es升级时,da......
  • CF1735C_Codeforces Round #824 (Div. 2)C
    题意:现有一个26个小写字母形成的环,将一个字符串加密,加密规则为将字母变换为环中该字母顺时针的下一个字母现给出加密后的字符串,要求解密出字典序最小的字符串分析:对于......