首页 > 其他分享 >ARC 180 D - Division into 3

ARC 180 D - Division into 3

时间:2024-08-04 19:38:33浏览次数:13  
标签:Division min into 最小值 180 ARC 区间 mx 式子

ARC 180 D - Division into 3
首先考虑分成两段,首先两端中必定有一个是最大值,问题就是让另一段的最大值最小化。
并且这两段一定一个是前缀 \(\max\),一个是后缀 \(\max\),那么显然就是只留第一个值或者只留最后一个值。所以就是 \(mx+\min(a_l,a_r)\),然后考虑分成三段。
对于一组询问 \([l,f]\),我们可以通过线段树求出 \(mx\) 的位置 \(p\),有以下两种情况:

  • \(p\) 在中间段:答案是 \(mx+a_l+a_r\)\
  • \(p\) 在第一段(第三段同理):就是后缀区间中 \(mx + \min(a_l,a_r)\) 的 \(\min\)。
    对于第二种情况我们将问题转换为了:
    给你一个序列,每次给你一个区间 \([l,r]\),需要求出一下式子最小值:

\[mx_{[i,r]} + \min(a_i,a_r) \]

满足 \((l\le i<r)\)。
然后发现最小值取到的 \(i\) 要么是 \(r-1\),否则一定满足 \(a_i < a_r\)。

证明:
因为 \(mx_{[i,r]}\) 是随着 \(i\) 的减小而增大的,只有让第二项变小才能比 \(i=r-1\) 时更优。

于是我们直接默认 \(a_i<a_r\) 即可,因为如果是 \(a_i\ge a_r\) 显然更劣。
也就是需要求出一下式子的最小值:

\[mx_{[i,r]} + a_i~(l\le i < r) \]

然后我们考虑扫描线:
发现不太好做,但是我们有一个骚操作,用一个单调栈(递增),每一次插入 \(i\) 我们会弹出一些元素,每次弹出就对应的在线段树上撤销,然后加上目前插入的 \(i\) 值的贡献。那么这一题就做完了,需要线段树支持区间加,区间 \(\min\),以及区间 \(\max\) 的位置。
总结:如果以后遇到区间查询区间的式子中含有后缀/前缀的最大值最小,或者最小值最大,且式子较为复杂,可以用扫描线+单调栈

标签:Division,min,into,最小值,180,ARC,区间,mx,式子
From: https://www.cnblogs.com/weirdoX/p/18342127

相关文章

  • 【转载】科研写作入门 —— 聊聊Science Research Writing for non-native Speakers o
    原地址:https://zhuanlan.zhihu.com/p/623882027平行侠:今天我们聊一聊ScienceResearchWritingfornon-nativeSpeakersofEnglish这本书,我博士毕业发的TIP论文就是看了这本书之后才写出来的,我太爱这本书了,请你给我们介绍一下吧。AI:非常高兴听到您对这本书的好评!《S......
  • 易优CMS模板标签uiarclist文档列表
    【基础用法】标签:uiarclist描述:文档列表编辑,比uitext、uihtml、uiupload标签多了一个typeid属性,使用时结合html一起才能完成可视化布局,只针对具有可视化功能的模板。用法:<divclass="eyou-edit"e-id="文件模板里唯一的数字ID"e-page='文件模板名'e-type="arclist">{eyou:uiar......
  • Elasticsearch笔记
    ES黑马课程笔记课程:尚硅谷ElasticSearch教程入门到精通(基于ELK技术栈elasticsearch7.x+8.x新特性资料:百度网盘课程评价:官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html魔法1初识ESES简介ES是一个开源的高扩展的分布式全文搜索......
  • 使用Arcgis pro做流域分析(河网+集水区)
    流域分析是水文分析的最基础内容。流域分析主要使用工具箱中的SpatialAnalyst组中的“水文分析”工具包和“地图代数”工具包(或者全部使用搜索)进行分析。下面将以下载的数字高程模型(DEM)格栅文件作为数据源进行演示,首先将将DEM文件导入gis中,根据情况使用投影工具(定义投影)。下面正......
  • Python:match()和search()的区别
    在Python中,match()和search()函数通常与正则表达式(regularexpressions)一起使用,特别是在re模块中。尽管它们都用于搜索字符串中的模式,但它们在搜索行为上有关键的区别。re.match()re.match()函数尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()......
  • 谷粒商城实战笔记-115-全文检索-ElasticSearch-进阶-bool复合查询
    文章目录1,must2,mustnot3,should1,must{"query":{"bool":{"must":[{"match":{"gender":"M"}},{"matc......
  • 谷粒商城实战笔记-118-全文检索-ElasticSearch-进阶-aggregations聚合分析
    文章目录一,基本概念主要聚合类型二,实战1,搜索address中包含mill的所有人的年龄分布以及平均年龄,但不显示这些人的详情2,按照年龄聚合,并且请求每个年龄的平均薪资Elasticsearch的聚合(Aggregations)功能允许用户对数据集进行聚合分析,从而获得数据的摘要信息。聚......
  • NewStarCTF WEEK5|WEB 4-复盘
    打开题目研究一圈没啥营养价值下载源码发现好东西if(file_exists($page)){require_once$page;}else{require_once'pages/error_page.php';}活的文件包含我们直接利用?+config-create+/&page=../../../../../usr/l......
  • NewStarCTF WEEK5|WEB pppython?
    对源码进行简单的分析<?php//检查`hint`请求参数是否等于指定的数组值if($_REQUEST['hint']==["your?","mine!","hint!!"]){//如果条件满足,设置响应内容类型为纯文本header("Content-type:text/plain");//执行系统命令`ls/-la`列出......
  • ElasticSearch分布式搜索引擎原理与代码实例讲解
    ElasticSearch分布式搜索引擎原理与代码实例讲解1.背景介绍1.1问题的由来在当今的数字时代,海量的数据被不断产生和存储。如何高效地检索和管理这些庞大的数据集成为了一个关键挑战。传统的关系型数据库虽然在事务处理和数据一致性方面表现出色,但在处理非结构化数据和......