首页 > 其他分享 >2025.01.03 LGJ Round

2025.01.03 LGJ Round

时间:2025-01-03 15:44:25浏览次数:1  
标签:LGJ 03 右边 左边 贡献 序列 区间 二分 Round

A

一个序列 \(a\),你需要对其每个前缀计算:至少要多少次交换相邻元素的操作使得序列变为“单峰”,即由一个递增序列和一个递减序列拼起来。\(n\le 5e5\)。

我一开始的想法是:枚举切点,左边的数排序成递增,右边的数排序为递减,贡献是逆序对+正序对。
然而这是错误,因为不保证左边的某个数去右边不是更优,右边的数也可以去左边。
还是考虑按照逆序对的形式计算贡献,即对于每对相对位置发生改变的数对计算贡献。
考虑把这些数对的贡献放到他们较小的那个去计算。
如果一个数选择到左边,那么要穿过所有左边比他大的数;选择到右边同理。
那么其贡献就是两个的较小值。那么把 \(\min\) 拆掉,二分出取右边的取值范围,剩下的就取左边。
二分考虑主席树上二分;关于取右边的贡献放到较大的数去算贡献。考虑用一个树状数组维护。
主席树的话版本为 \(i\) 就维护 \(\ge i\) 所有数的位置,那么就可以主席树上二分了。

B

\(n\) 个区间,他们要么不交要么包含,你需要给每个区间选一个非空子区间,使得所有子区间都不交,最大化所有子区间长度的和。\(n\le 5000\)。

考虑建出区间树,然后在树上 dp。那么对于一个区间,这个区间的子区间有如下几种选择:
填在儿子区间内;填在其左侧/右侧多出的部分中;填在两个相邻儿子区间的夹缝中。
我们很难通过枚举子区间的位置来决策,因为可以填到儿子区间内部。
所以我们考虑在计算儿子的时候就把区间给选出来,然后做一个树形 dp。
设 \(f_{u,i,0/1,0/1}\) 表示 \(u\) 子树内已经欠了 \(i\) 个子区间在祖先选,当前左/右多出来的区间是否可选。
合并的话先合并儿子假设合并相邻两个区间,那么 \(g_{u,i,p,q}=\max_{j,t}(f_{v_1,j,p,t}+f_{v_2,i-j,t,q})\)。
然后最后算上 \(u\) 的贡献,\(u\) 这里可以选一个子区间,可以插中间,也可以插两端。

标签:LGJ,03,右边,左边,贡献,序列,区间,二分,Round
From: https://www.cnblogs.com/Simon-Gao/p/18650236

相关文章

  • 250103.openEuler欧拉安装Jenkins并修改构建workspace路径
    1.安装Jenkinswget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/jenkins.repo--no-check-certificaterpm--importhttps://pkg.jenkins.io/redhat-stable/jenkins.io-2023.keyyuminstall-yfontconfigjava-17-openjdkdnf-yinstalljenk......
  • C# BackgroundService服务案例
    1publicabstractclassBackGroundWork:BackgroundService2{3///<summary>4///创建⼀个取消标记源5///</summary>6privatereadonlyCancellationTokenSourcecancellationTokenSource=newCancellationTokenSource();7//......
  • 字符串拼接方法`${}`和' '+' '用法
    原文链接:https://www.cnblogs.com/shimily/articles/18598713字符串拼接方法一:````两个点里面可以放任何内容,包括html,js代码,不限制格式,`${}`里面可以放变量。字符串拼接方法二''+''一般用来拼接字符串和变量,如果拼接html有格式限制,代码里面不能有空格换行letkssj=......
  • wx.getBackgroundFetchData
    wx.getBackgroundFetchData(objectobject)基础库2.8.0开始支持,低版本需做兼容处理。以Promise风格调用:支持小程序插件:不支持相关文档:周期性更新、数据预拉取功能描述拉取backgroundFetch客户端缓存数据。当调用接口时,若当次请求未结束,会先返回本地的旧数据......
  • wx.getBackgroundFetchToken
    wx.getBackgroundFetchToken(Objectobject)基础库2.8.0开始支持,低版本需做兼容处理。以Promise风格调用:支持小程序插件:不支持相关文档:周期性更新、数据预拉取功能描述获取设置过的自定义登录态。若无,则返回fail。参数Objectobject属性类型默认值必......
  • KTH5774 : 3D 摇杆/操纵杆霍尔位置传感器芯片,可替代mlx90333
    KTH5774是一款摇杆、操纵杆专用的3D霍尔磁感应芯片,主要面向对线性度和可靠性要求严格的应用场景。KTH5774基于3D霍尔技术,内部分别集成了X轴、Y轴和Z轴三个独立的霍尔元件,能够通过测量和处理磁通密度矢量的三个空间分量(即BX、BY和B......
  • wx.onBackgroundFetchData
    wx.onBackgroundFetchData(functionlistener)基础库2.8.0开始支持,低版本需做兼容处理。小程序插件:不支持相关文档:周期性更新、数据预拉取功能描述监听收到backgroundFetch数据事件。如果监听时请求已经完成,则事件不会触发。建议和wx.getBackgroundFetchData配......
  • wx.setBackgroundFetchToken
    wx.setBackgroundFetchToken(objectobject)基础库2.8.0开始支持,低版本需做兼容处理。以Promise风格调用:支持小程序插件:不支持相关文档:周期性更新、数据预拉取功能描述设置自定义登录态,在周期性拉取数据时带上,便于第三方服务器验证请求合法性参数objectobje......
  • 【网络云SRE运维开发】2025第1周-每日【2025/01/03】小测-【第4章 综合布线】理论和实
    文章目录一、理论题详细解析1.办公网综合布线系统中,水平子系统常用的线缆类型是什么,其最大传输距离一般为多少?2.简述综合布线系统中工作区子系统的主要作用和组成部分。3.在综合布线系统中,管理子系统的功能是什么,通常包含哪些设备?4.垂直干线子系统主要用于连接哪些部......
  • 【网络云SRE运维开发】2025第1周-每日【2025/01/03】小测-【第4章 综合布线】理论和实
    文章目录一、理论题1.办公网综合布线系统中,水平子系统常用的线缆类型是什么,其最大传输距离一般为多少?2.简述综合布线系统中工作区子系统的主要作用和组成部分。3.在综合布线系统中,管理子系统的功能是什么,通常包含哪些设备?4.垂直干线子系统主要用于连接哪些部分,常见的......