首页 > 其他分享 >EC-Final 2022 Rectangles

EC-Final 2022 Rectangles

时间:2023-11-25 19:57:39浏览次数:39  
标签:右侧 线段 EC 合法 端点 左侧 区间 Rectangles Final

有点营养的题。

很容易做三条竖线,接下来考虑两竖一横。直接枚举横线会变成支持加入区间删除区间维护有多少种方案选择两个点使得任何区间至少包含其一。当然一个想法是线段树分治,以一只 log 的代价转化为只有加入,这个先放着。胡乱离散化一下,又可以转化为点带权但值域只有 \(2n\)。当然这样会存在线段相同的问题,但是可以通过容斥解决掉。

考虑枚举左侧点算有多少合法的右侧点,首先如果有区间完全在左侧点的左边直接不合法,其次如果右边有俩不交区间那么也不合法。满足这俩的合法左侧点构成一个“左侧点区间”,这是很好求的。考虑其中的某个特定左侧点,发现此时所有合法右侧点也构成一个“右侧点区间”,且“右侧点区间”的左端点是始终不变的——左端点最右的区间的左端点。于是你只需要对于所有左侧点维护【它的“右侧点区间”的右端点】的区间和。考虑当你加入一个区间的时候这个东西会怎么变化,容易发现是前缀取 min。一个朴素想法是 Segment Tree Beats!,可惜它不支持撤销,不能套线段树分治,所以我们需要一个更厉害的东西。考虑单侧递归线段树。具体地,这里是支持单点修改,维护后缀 min 的区间和。我们发现它可以随便支持删除——对每个位置维护俩堆即可。于是我们不需要线段树分治。时间复杂度是 \(\Theta(n\log^2 n)\)。

标签:右侧,线段,EC,合法,端点,左侧,区间,Rectangles,Final
From: https://www.cnblogs.com/kyeecccccc/p/17855962.html

相关文章

  • 预写日志 + 了解checkpoint参数
    在执行大量写操作的系统上,调优检查点对于获得良好的性能至关重要。然而,检查点是我们经常发现混淆和配置问题的地方之一,那么让我带你了解一下检查点,它们做什么以及如何在PostgreSQL中调优它们。虽然有一些关于它的文档,但我决定用可能更容易理解的语言来写它——不是作为开发人员,而......
  • pip install报错"Can't connect to HTTPS URL because the SSL module is not availab
    一、故障现象[root@jenkins/data/package/openssl-1.1.1n]#pip3installemojiWARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.WARNING:Retrying(Retry(total=4,connect=None,read=None,redirect......
  • Probabilistic principal component analysis-based anomaly detection for structure
    SHMcanprovidealargeamountofdatathatcanrevealthevariationinthestructurecondition什么是压缩传感,数据重构,研究背景与意义,怎么用基于模型的方法不可避免的缺点是模型的不确定性,因为很难创建能够模拟真实物理情况的可靠的结构模型。为了克服基于模型的方法的缺......
  • 什么是 Angular 基于 Constructor Parameter 的 Dependency Injection
    在Angular中,依赖注入(DependencyInjection,DI)是一种设计模式,用于处理如何在不同的代码部分创建和传递依赖对象。在Angular中,我们通常依赖于TypeScript的特性,如构造函数参数(constructorparameters)来执行依赖注入。构造函数参数进行依赖注入是AngularDI系统的一个重要特......
  • final 和 static
    //1.final常量,需要在定义的时候进行初始化;每个对象的初始化不一样;//2.staticfinal常量可以在定义的时候初始化;也可以在static块中初始化;该种定义该类的对象使用的值一致。//3.被static修饰的变量,叫静态变量//4:静态区:方法区中一个模块,用于存放静态变量和静态代码块,也就是st......
  • bigdecimal转integer
    将BigDecimal转换为Integer,可以使用intValue()方法。这个方法将BigDecimal对象转换为一个整数类型的值(即int类型),然后将其自动装箱为Integer类型。以下是示例代码:importjava.math.BigDecimal;publicclassBigDecimalToIntegerExample{publicstaticvoidmain......
  • Object Storage Service
    AliyunOSS1.createbucket2.createsub-accountthathasgrantedpermissions3.useaccesskeyandsecretbrowser->transferdirectly->osscallback-baseddirecttransfer ......
  • 【硬件相关】SPECpower能效评估工具
     一、前言1、软件说明官网:SERT®套件用户指南2.0.5SPECpower介绍SPEC基准及工具SPECpower_ssj2008测试结果SPECpower_ssj2008-Design_ccs-SPECSPEC(theStandardPerformanceEvaluationCorporation)是一个由计算机硬件厂商、软件公司、大学、研究机构、系统集......
  • 嵌入式GEC6818项目——电子相册(一)
    一、背景准备1、Linuxx相关命令学习①cd;②pwd;③cp;等shell命令的学习④rm:删除命令(针对文件指针),所以是不可恢复的(文件不可恢复,一定要慎用,特别是对重要文件)【删库命令】对目录操作时,需要添加-r参数2、关于GEC6818内核芯片:芯......
  • ORACLE: BULK COLLECT批量处理
    ORACLE批量更新大数据量操作bulkcollect与forall参考:https://blog.csdn.net/ITdevil/article/details/94582857%ROWTYPE类型声明:--规则:变量名表名%ROWTYPE(表示声明的变量类型与表OE_ORDER_HEADERS_ALL中的一条记录类型相同)v_order_header_recont.oe_order_headers_a......