首页 > 其他分享 >cf1148h-solution

cf1148h-solution

时间:2024-02-27 20:34:40浏览次数:16  
标签:版本 solution 修改 lst cf1148h 端点 区间 mex

CF1148H Solution

link

对于区间 mex,若固定一个右端点 \(r\),左端点 \(l\) 越小 mex 肯定越大。

假设我们维护了右端点为 \(n\),左端点为 \(i\in[1,n]\) 的区间 mex(设为 \(b_i\)),考虑在序列末尾加入一个数 \(x\):

显然有且仅有原先 \(b_i=x\) 的一段 \(b\) 会被改掉。改成什么呢?大概是这样的,设 \(b_i=x\) 的区间为 \([L,R]\):

  • 找到最小的 \(y\) 满足 \(y\) 在 \([R,n]\) 内没有出现过,即 \(lst_y<R\),\(lst_y\) 为 \(y\) 的最后一次出现位置。

  • 区间 \((lst_y,R]\) 的 \(b\) 改为 \(y\),同时 \(R\gets lst_y\)。

重复这个过程直到 \(L>R\)。这样就完成了对这一段 \(b\) 的修改。

找 \(y\) 的过程可以利用线段树二分或者其他什么数据结构。

实际上,修改 \(b\) 的次数只有 \(\mathcal O(n)\)。

我们每次本质上是把一种颜色的区间分裂成多种其他颜色的。简单归纳一下就会发现是线性的!

考虑询问。将第 \(i\) 次插入完得到的 \(b\) 称为第 \(i\) 个版本的 \(b\),那么就是要查询前 \(r\) 个版本中 \(i\ge l\) 的 \(b_i=k\) 的个数。

这类似一个矩形求和,如果允许离线我们可以扫描线处理。但是现在强制在线,考虑主席树:

对于每个 \(k\) 分别维护一颗主席树。这样变成了允许区间修改,求区间历史和。

我们维护一下区间的值的和,以及值乘上其修改时间的和。查询时 upper_bound 找到 \(\le r\) 的最后一个版本,在那个版本对应的根里面查询即可。

复杂度 \(\mathcal O(n \log n)\)。

标签:版本,solution,修改,lst,cf1148h,端点,区间,mex
From: https://www.cnblogs.com/iorit/p/18037982

相关文章

  • cf1184a3-solution
    CF1184A3Solutionlink题意:给你两个长度为\(n\)的小写字符串\(s,t\)和一个\(m\),定义哈希函数\[h(s)=\left(\sum_{i=0}^{n-1}s_ir^i\right)\bmodp\]求构造\((p,r)\)且\(p\gem,r\in[2,p-1]\),使得\(h(s)=h(t)\)。\(n,m\le10^5\)。题目即求一个多项式\(f(x)=\sum_{......
  • cf1188e-solution
    CF1188ESolutionlink考虑\(x_i\)表示最后序列中每个数被操作的次数。显然我们可以假设\(\min\{x_i\}=0\)。仍然显然的是这样子的\(x\)序列与最后得到的序列一一对应,也就是说每个最终序列可以只能由一种\(x\)得到。那么就变成计数合法的\(x\)序列了。考虑\(x_i\)需......
  • cf1205d-solution
    CF1205DSolutionlink题意:给你一棵\(n\)个节点的树。请你给它的\(n-1\)条边确定权值,使得树上\(\dbinomn2\)条路径的权值和包含\(\displaystyle1\sim\left\lfloor\frac{2n^2}9\right\rfloor\)中所有整数。\(n\le1000\)。注意到有关树上路径问题,我们考虑设\(rt\)......
  • Rancher 无法删除集群的Solution
    Rancher无法删除集群的Solution不同版本的Rancher都能遇到该问题,此问题中,Rancher版本为v2.6.0当我们先删除节点,并在节点宿主机上删除了对应的服务器,再通过Rancher界面去删除托管/自建立集群时,往往这个操作会卡住,并出现报错:{"type":"error","links":{},"code":"PermissionDe......
  • Solution Set #11
    177qoj7607.TheDoublingGame2首先可以发现对于一个局面,操作到这个局面的方案是唯一的(考虑一条边左右的棋子数量,可以知道这条边的移动方向,删去所有不移动的边之后,每个联通块只有一个点有棋子,而对于只有根有棋子的局面构造显然唯一)据此可以\(\mathcal{O}(n^2)\)DP:设\(f_{u......
  • 2.22 闲话 & solution 『虽然我不是神/不像他们无所不能/却总畏惧一语成谶』
    有↑没有↓谁↑能够↓代↑替↓我↑(去考开学的一调)唐氏模拟赛,板子大战,全场都是板子,\(\textT3\)甚至还不如板子,\(byd\)题解居然是用的高贵的\(O(n\logn)\)算欧拉函数,唐\(\text{lxyt}\)复活赛打赢了可以去打\(\text{HEOI2024}\)了,体验名额DZ和xrlong的代码进行了大量对拍,仍......
  • solution-div2contest-D
    题面可以在link看到?大力手玩题!场切了!首先看到这种题,我们一定是先想给定一个树怎么求他的最大独立集。我忘记怎么贪心了,于是考虑DP,设\(f_{u,0/1}\)表示以\(u\)为根的子树中独立集包含或不包含\(u\)这个点的最大独立集大小。转移是显然的,为了下文讲解方便还是在这里写出......
  • 2.21闲话 & solution『 有没有/谁/能够代替我』
    上午有唐氏模拟赛,100/0/0/20,rk7/15,鉴定为最唐的一次T1签到题,思路很简单题面ame是一个可爱的女孩子,她想要你帮她排序。给定\(4\timesn\)个数,要求将其分为\(n\)组,使得对于每组四个数,所有组中的\(|a\timesb-c\timesd|\)和最大,求最大和。排序,对于前\(2n\)大的,尽量把大......
  • Solution Set【2024.2.21】
    [ARC162C]MexGameonTree可以发现若Bob在某个节点填了值\(K\),那么会直接导致其根链上的所有节点均不可能满足要求。因此若某个节点的子树内有不小于两个空位,那么Alice一定无法使该子树满足要求。若某节点子树内有一个空位且可以通过填上这一空位使其合法,那么Alice可......
  • 2.17 闲话 & solution『登陆宇宙/带着你所幻想的所有/灵魂加速失控 』
    拜谢了,您别Fake了,您当年自愿退出国集我是极力反对的,我知道您从小学一年级开始打NOI并且直接获得了金牌分数线上的好成绩,肆意AK了好几年NOI,直到近年才意识到自己太过强大只好肆意控分,NOIP2023的题目您当时拿到的一瞬间用\(\frac{2}{3}s\)就全部想到了正解,并在\(\frac{3}{2}......