随笔分类 - 树形数据结构—线段树
摘要:题意 "题目链接" Sol 看不懂splay。。,看不懂树状数组。。。 只会暴力动态开节点线段树 观察之后不难发现,我们对于行和列需要支持的操作都是相同的:找到第$k$大的元素并删除,在末尾插入一个元素 这样我们可以维护$n+1$棵线段树(对列单独建一棵) 每次操作的时候,如果$y_i = m$,那
阅读全文
摘要:题意 "题目链接" Sol 这题没有想象中的那么难,但也绝对不简单。 首先把所有的询问离线,按照出现的顺序。维护时间轴来处理每个询问 对于每个询问$(x_i, y_i)$,可以二分答案$mid$。 问题转化为对于所有$a_i \leqslant y_i \leqslant b_i$的商店,$(x m
阅读全文
摘要:题意 "题目链接" Sol 不难发现题目给出的是一个树,其中$\frac{i}{K}$是$i$的父亲节点 首先,当$d_i$互不相同时,一个显然的贪心策略就是优先给编号小的分配较大的权值。可以排序后dfs完成。 但是,当$d_i$相同时,可能存在这样一种情况:把编号小的子树内权值较大的节点,和某个编
阅读全文
摘要:题意 "题目链接" Sol 这题关键是注意到题目中的$b$是个排列 那么最终的答案最多是$nlogn$(调和级数) 设$d_i$表示$i$号节点还需要加$d_i$次才能产生$1$的贡献 用线段树维护每个节点里$d_i$的最小值,每次当$d_i 1= 0$的时候往下递归即可 时间复杂度:$O(nlog
阅读全文
摘要:题意 "题目链接" Sol 直接在线段树上二分 当左右儿子中的一个不是$x$的倍数就继续递归 由于最多递归到一个叶子节点,所以复杂度是对的 开始时在纠结如果一段区间全是$x$的两倍是不是需要特判,实际上是不需要的。 可以这么想,如果能成功的话,我们可以把那个数改成$1$,这样比$x$大的数就不会对答
阅读全文
摘要:题意 "题目链接" Sol 神仙二分Orz 首先二分一个答案,表示假设询问的位置为$x$,把$ = x$的看成$1$,$ define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second using n
阅读全文
摘要:题意 "题目链接" Sol 按照dls的说法,一般这一类的题有两种思路,一种是枚举一个点$M$,然后check它能否成为答案。但是对于此题来说好像不好搞 另一种思路是枚举最小的区间长度是多少,这样我们把所有区间按长度排序后可以二分出满足条件的最短的区间长度 观察后不难发现,较长区间的长度一定是随着短
阅读全文
摘要:题意 题目链接 Sol 好的又是神仙题。。。 我的思路:对于区间分两种情况讨论,一种是完全包含,另一种是部分包含。第一种情况非常好判断,至于计算对于一个区间[l, r]的$\sum a[i]$就可以了,但是后两种呢?qwq。想了半天也没想出来。看了下题解,果然还有更高端的操作! 首先这题可以看是二分
阅读全文
摘要:题意 题目链接 Sol 传说中的吉司机线段树??感觉和BZOJ冒险那题差不多,就是强行剪枝。。。 这题最坑的地方在于对于操作1,$C >= 0$, 操作2中需要对0取max,$a[i] >= 0$,这不就是统计最小值出现的次数么?? 按照套路 维护好区间赋值标记 / 区间加法标记 / 区间max标记
阅读全文
摘要:题意 题目链接 Sol 这玩意儿是听shadowice说的,好像很厉害的样子 我们维护出区间&,区间|,区间最大值 结论:如果一次操作对区间& 和 区间| 产生的影响是相同的,那么该操作对整个区间的影响都是相同的 证明可以看这里 然后就做完了。。 时间复杂度$O(nklogn)$,$k$是二进制位数
阅读全文
摘要:题意 Sol 讲过无数次了。。很显然,一个$10^12$的数开方不超过$8$次后就会变为$1$ 因此直接暴力更改即可,维护一下这段区间是否被全改为了$1$ 双倍经验:https://www.luogu.org/problemnew/show/P4145
阅读全文
摘要:题意 $n$个数的序列,$m + k$种操作 1、$l , r, k$把$l - r$赋值为$k$ 2、$l, r, d$询问$l - r$是否有长度为$d$的循环节 Sol 首先有个神仙结论:若询问区间为$(l, r, d)$,则只需判断$(l + d, r)$和$(l, r - d )$是否相同
阅读全文
摘要:题意 Sol 会了GSS1,GSS3就比较无脑了 直接加个单点修改即可,然后update一下
阅读全文
摘要:题意 给出$n$个数,每次询问区间$(l, r)$内最大字段和 Sol 在合并子树的时候,答案仅有四种情况 打四个标记维护即可 查询同理,用类似update的方式合并 注意查询的时候不能按照以前的方式写,因为不知道变量的下界,最稳妥的办法就是判三种情况
阅读全文
摘要:题意 Sol 今天考试的T3,,我本来留了一个小时去写。但是T2一刚就刚了两个小时 最后也没来的及写。。 然后考完 开始写,,25min就A了。。 感觉自己太高估自己的思维,太低估自己的码力了。。。 这题比较简单吧 期望的和等于和的期望 然后线段树维护每个节点的值就可以了 交换的时候分自己不变和变成
阅读全文
摘要:Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站。Y901高速公路是一条由N-1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序将收费站依次编号为1~N,从收费站i行驶到i+1(或从i
阅读全文
摘要:题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置。Debian/Ubuntu使用的apt-get,F
阅读全文
摘要:题目描述 Frank对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度、颜色等等,进而估算出星星的距离,半径等等。 Frank不仅喜欢观测,还喜欢分析观测到的数据。他经常分析两个参数之间(比如亮度和半径)是否存在某种关系。 现在Frank要分析参数XX 与YY 之间的关系。他有
阅读全文
摘要:题目描述 有 n(1 \leq n \leq 10^5)n(1≤n≤105) 个小朋友,过年了,要发放 m(1 \leq m \leq 10^5)m(1≤m≤105) 次礼物。 每次发放,会给出三个参数 l,r,k(1 \leq l \leq r \leq n, 1 \leq k \leq 10^5
阅读全文
摘要:题目描述 你有一个长度为 nn 的数列 \{a_n\}{an} ,这个数列由 0,10,1 组成,进行 mm 个的操作: 1~l~r1 l r :把数列区间 [l, r][l,r] 内的所有数取反。即 00 变成 11 ,11 变成 00 。 2~l~r2 l r :询问数列在区间 [l, r][
阅读全文