首页 > 其他分享 >UOJ-783 新年的双区间操作

UOJ-783 新年的双区间操作

时间:2023-08-31 19:22:31浏览次数:56  
标签:偏序 触发 新年 783 线段 区间 操作 序列 UOJ

题意

给定一个序列 \(a\),给一个操作序列 \(m\),每个操作形如 \((l_i, r_i, x_i, l'_i, r'_i, y_i)\),表示如果区间 \([l_i, r_i]\) 最大值大于等于 \(x_i\) 则将区间 \([l'_i, r'_i]\) 对 \(y_i\) 取 \(\max\)。现在进行 \(q\) 次修改,每次先将 \(a_p\) 修改为 \(v\)(这个修改是 累积 的),然后 假设 依次执行整个操作序列,询问执行完后序列的最大值应该是多少。

题解

数据结构高妙题。

考虑一个操作 \(i\) 被触发的条件,要么是初始序列中有数能触发它(这是相对朴素的,运用后一种的处理方法一定能做),要么是有某一个操作 \(j\) 满足:\(j < i, [l'_j, r'_j]\cap[l_i, r_i]\neq\varnothing, y_j\ge x_i, \text{操作 j 被触发}\)。最终答案要么是原来序列的全局最大值,要么是所有被触发的操作中,\(y\) 最大的一个。这启发我们,不要正着去考虑 前面满足什么要求,才会触发操作 \(i\),而是递推 如果操作 \(i\) 被触发,会进一步触发的操作有哪些。这样我们只需要维护一个 \(y\) 的最大值,记作 \(f_i\)。

首先,区间有交这个限制,看起来就是非常丑陋,其它两个限制是个偏序关系的形式,有一火车皮的处理方法。又想到操作被反复统计不会有问题,所以把每个区间拆到线段树节点上,记下 \((x_i, f_i)\) 的信息,查询直接把 \([l'_j, r'_j]\) 放到线段树上,看能触发哪些后续操作。这样就是一个二位偏序加普通线段树问题,于是我们有经典 CDQ 分治。具体地,对操作序列分治,每次递归求完后半段答案以后,前半段按照 \(y\) 排序,后半段按照 \(x\) 排序。双指针加入后半段的操作,就能把两个偏序的限制都去掉,接下来直接在线段树上做区间取 \(\max\),区间求 \(\max\) 即可。这样预处理出了所有问题。时间复杂度是 \(\Theta(m\log n\log m)\)。

标签:偏序,触发,新年,783,线段,区间,操作,序列,UOJ
From: https://www.cnblogs.com/kyeecccccc/p/17414429.html

相关文章

  • MT6783核心板,MTK6783安卓核心板性能参数
    联发科的MT6783核心板采用高性能四大核A76和四小核A55的旗舰八核架构,主频高达2GHz,为用户带来更流畅的应用程序加载和游戏体验。作为联发科在5G集成SoC技术上的领先者,天玑800采用了7nm制程,为厂商提供高效、旗舰级的5GSoC解决方案。MT6783核心板内置双载波聚合的5G集成单芯片,在提供......
  • 【JZOJ7839】神秘代码
    凯尔希我谢谢你lcp的题所以考虑使用$SA$或者$SAM$此处使用大佬提供的$SA$思路PartI首先我们考虑不反转怎么做这其实是一道SA板子题我们将所有的字符串全部用特殊符号隔开变成一个大字符串然后把每个点的$height$数组跑出来对于每一个点的$height$值......
  • 《LYNUOJ使用简明教程》
    一:注册,登录二:选择团队并加入 三:进入团队开始训练四:进入题目页面选择合适的语言并粘贴代码右下角在线自测可以评测你在在线编译器上代码是否正确提交评测后左边或出现五:更多评测状态详情......
  • UOJ 117. 欧拉回路
    \(UOJ\)\(117\).欧拉回路一、题目描述时间限制:\(1s\)空间限制:\(256MB\)有一天,一位灵魂画师画了一张\(n\)个点\(m\)条边(\(1≤n≤1e5,0≤m≤2e5\))的图。现在要你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。一共两个子任务:这张图是无向图。(\(50\)分)......
  • 7DGroup性能&测试开发文章持续整理(新年版)
    性能闲谈系列:浅谈window桌面GUI技术及图像渲染性能测试实践杂谈:性能测试的范围到底有多大?戏说CPU使用率-驳《CPU使用率度量指标是扯淡!》译文标题对性能测试评估分析优化市场的反思泛谈系统级跟踪和应用级跟踪性能测试分析优化该有的范围性能基础系列:------------接口--------------......
  • UOJ312 【UNR #2】梦中的题面
    好题。容斥后插板,要计算的形如\(\binom{Sum}{m}\)的样子。这个\(Sum\)可能会很大,不能直接设进状态,但是我们\(dp\)需要\(Sum\)计算组合数。解决方法是用范德蒙德卷积\[\sum_{i=0}^{k}{\binom{n}{i}\binom{m}{k-i}}=\binom{n+m}{k}\]设\(dp_i\)表示当前所有\(\binom......
  • 用Python画一只小兔子,祝您新年前途似锦,大展宏图
    用Python画一只小兔子,祝您新年前途似锦,大展宏图兔年到了,祝大家新年前途似锦!大展宏图!2021牛年,我用Python画了一头金牛,参考:Python画金牛2022虎年,我用Python画了一只小老虎,参考:Python画小老虎今年是第三年,还是一样的方式,今年画一只小兔子,为大家送上祝福。绘图过程录制成了如下视频,点......
  • UOJ #284. 快乐游戏鸡题解(长链剖分+单调栈合并)
    UOJ#284.快乐游戏鸡题解(长链剖分+单调栈合并)题面一番战斗之后,程序猿被计算鸡们赶走了。随着垫子计算鸡一声令下:“追!”,于是计算鸡村全村上下开始乘胜追击。计算鸡们希望在新的一年到来之际给程序猿以重创,出掉这一年的恶气。可是程序猿一追就走,一走就跑,一跑就无影无踪。计算鸡......
  • P7831 题解
    problem&blog。妙妙题。单杀了,来写篇题解。下文中\(ans_u\)表示从\(u\)点出发的答案。考虑直接做。发现更新任何一个点,都可能会对一堆点造成影响,\(O(n^2)\)无法接受。一些简单的性质:不能进入一个环的\(ans_u=-1\)。否则,对于\((u,v,r,p)\),\(r\)是最大的\(r\),那么只......
  • UOJ #37. 【清华集训2014】主旋律 整理--zhengjun
    好像没做过DAG计数的题。首先看到数据范围,考虑状压。方便起见,记\(cnt_{S,T}=\sum\limits_{(u,v)\inE}[u\inS\andv\inT]\)。设\(f_S\)表示\(S\)为强连通分量的选边方案数,由于正面很难算。考虑反面:\[f_S=2^{cnt_{S,S}}-\sum\limits_{\varnothing\subsetneqqT\s......