一些$LCT$的瓜皮题目
一些瓜皮
放几个比较优(she)秀(pi)的\(LCT\)题。
老惯例,每一题代码因为一些未知原因消失了(如果要的话私我好了,虽然会咕咕咕)。
嘴巴\(AC\)真香!
[SP16580] QTREE7
对黑色、白色各开一棵有根\(LCT\)。
若\(x\)点加入颜色\(c\)集合,则在\(c\)的那颗\(LCT\)上连接\((x,fa_x)\),在另一棵上断掉父亲边。
查询时,首先判断根结点是否在当前颜色集合内。
如果在的话直接查整棵\(LCT\)。
否则走向右儿子,查询对应子树。
什么子树最大值啥的维护一下子树信息,拿\(multiset\)搞搞就行了。
[BZOJ2959] 长跑
动态联通图?这种东西估计只有鸽子他们才会吧......
注意到边是任意定向,所以一个环等价于都能走,直接缩起来即可。
所以如果当前连边两点已经在一个联通块了,那么直接暴力缩点。
[LOJ6041] 事情的相似度
建\(SAM\),那么两个结点的\(LCA\)就是它们的最大\(lcp\)。
离线,依次加入左端点,那么它沿着\(SAM\)的\(fail\)树一路往上爬,遇到的所有右端点都有贡献。
这是\(LCT\)的经典应用,就是一个\(Access\)。
并且显然只有最靠左的右端点有用,所以\(LCT\)维护最小右端点即可。
最后得到了若干二元组,扫描线一遍完事。
[ZJOI2018] 历史
显然每个结点的答案只与/子树内战争个数\(sum\)/和//最大战争个数的子树/的战争个数\(mx\)//有关。
当\(mx > \lceil \frac{sum}{2} \rceil\)时,\(Ans = 2(sum-mx)\),否则\(Ans = sum-1\)。
一个直观想法就出来了,直接有根\(LCT\)维护子树最大值,每次\(Access\)更新答案。
吉老师:\(naive\)。
问题在于:每次\(PushUp\)需要知道子树大小,而知道子树大小需要\(Splay\)当前结点。
所以这题就变仙了。
直接类似\(LCT\)维护状态,对于满足\(mx> \lceil \frac{sum}{2} \rceil\)的儿子用重链连接,否则用轻链连接。
可以发现一条重要性质:爆跳父亲,重链个数不会超过\(log_2(deep)\)。
然后真相大白,全部暴力维护即可。
[BZOJ2888] 资源运输
维护重心是一个老的不行的套路了,使用启发式合并可以秒杀。
问题在于维护所有点到重心的距离和。
点分治?做梦吧你!
可以发现,对每一个点维护联通块内的点到其的距离和相当浪费。
其实我们只需要知道重心的该信息。
所以就只在重心维护这个信息,考虑重心移动时的转移,发现只需要再维护子树和就行了。
由于我们需要支持\(Link\)操作的同时维护子树信息,所以依旧需要维护换根反转标记。
[BZOJ3779] 重组病毒
显然染色操作就相当于\(Access\),然后考虑贡献。
我们把减少量差分处理,那么对于重链链顶的子树,答案全部减少了\(1\)。
同时对于原来的重链儿子,其颜色会相对来说增加\(1\)。
把原树给剖一下然后线段树区间修改直接维护即可。
现在有了换根操作,其实是一样的。
可以发现,换根后进行一次染色,等价于先染色然后换根(反正那条链的颜色只有一个)。
所以就当作什么都没发生,直接换根。
由于现在根可以在查询点的子树内,所以这种情况加贡献也要特殊处理,稍微弄一下就行了。
[BZOJ4573] 大森林
\(n\)棵\(LCT\)是不可能的,这辈子都不可能的。
由于询问保证查询点一定在树上,所以把那些多余的点全部建出来是没有影响的。
所以唯一难办的操作就是更换生长结点了,此时需要集体换父亲操作。
不难想到,对于第\(i\)个生长结点,建立一个虚拟结点\(p_i\),把长在它下面的结点全部连在\(p_i\)上。
现在可以解决集体换父亲了,但如何放置这些虚拟结点使其满足对应包含关系?
我们使用一种近乎疯狂的方式解决这个问题。
离线。
在算法开始前,我们把\(p_i\)连接到\(p_{i-1}\)下面。
那么当碰到更换生长结点操作\(i\)的左端点时,直接把\(p_i\)连接到对应位置。
在该操作结束后,把\(p_i\)重新连接回\(p_{i-1}\)下面。
包含关系显然时刻都是对的。
然后查询答案涉及求\(LCA\)(可能为虚点),很棒的是\(LCT\)完美兹瓷该操作。
一些$LCT$的瓜皮题目的更多相关文章
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 一道返回num值的小题目
题目描述: 实现fizzBuzz函数,参数num与返回值的关系如下: .如果num能同时被3和5整除,返回字符串fizzbuzz .如果num能被3整除,返回字符串fizz .如果num能被5整除,返 ...
- 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
随机推荐
- C/C++作用域运算符::
::是运算符中等级最高的,它分为三种:全局作用域符,类作用域符,命名空间作用域符 全局作用 全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如: char ch; / ...
- 在Visual Studio中使用.lib和.dll的环境搭建
1 静态库和动态链接库的区别 动态链接库是在运行的时候被调用的,静态库在链接的时候被链接到最终生成的应用程序(.exe)中 静态库需要用到的文件 (.lib .h) 头文件(.h)提供接口,库文件(. ...
- 32bit 天堂服务端假设教程
本文作者:smeli(俄罗斯人,于2009年完成该教程) PS:要比国内写的那些教程完整,详细,希望大家喜欢 VS运行库安装………………………………………..2 SQL数据库安装…………………………… ...
- Spring入门学习笔记(3)——事件处理类
目录 Spring中的事件处理 Spring内建事件 监听Context事件 Example 自定义Spring事件 Spring中的事件处理 ApplicationContext 是Spring的核 ...
- Hyperledger Fabric CA User’s Guide——概述(二)
概述 下面的图表说明了如何将Hyperledger Fabric CA与总体的Hyperledger Fabric结构相匹配. 有两种方式与一种Hyperledger Fabric CA服务器进行交互 ...
- GlusterFS分布式存储集群-1. 部署
参考文档: Quick Start Guide:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/ Instal ...
- Tomcat安全管理规范
s 前言 随着公司内部使用Tomcat作为web应用服务器的规模越来越大,为保证Tomcat的配置安全,防止信息泄露,恶性攻击以及配置的安全规范,特制定此Tomcat安全配置规范. 定位:仅对tomc ...
- c# 程序重启设定
问题情境: 程序随着时间运行,越来越大.暂时想到的两种方法,一是反攻代码,查看占内存大的函数,是不是没有回收.再就是暴力设定程序定时重启. 解决原理: 定时重启:暂设定timer,时间匹配执行rest ...
- 软工1816 · Beta冲刺(4/7)
团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 推进安卓端各个接口的开发,安卓端各个接口已经基本完成 完成食堂各个平面图的绘制 ...
- <s:action>的一些用法
Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以具体指定某一命名空间中的某一Action.而标签的主体用于显示及渲染Actionr的处理结果. action标签有如下几 ...