一些瓜皮

放几个比较优(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$的瓜皮题目的更多相关文章

  1. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  2. 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  3. 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  4. 一道返回num值的小题目

    题目描述: 实现fizzBuzz函数,参数num与返回值的关系如下: .如果num能同时被3和5整除,返回字符串fizzbuzz .如果num能被3整除,返回字符串fizz .如果num能被5整除,返 ...

  5. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  6. 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  7. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  8. 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  9. 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

随机推荐

  1. jmeter☞工作区介绍(三)

    基于jmeter4.0,jdk1.8 目录树:存放设计过程中使用的元件.执行过程中默认是从根节点开始顺序遍历元件.比如说HTTP请求的取样器就是元件,组件就是一个或多个元件的集合. 测试计划编辑区域: ...

  2. NO---20 文件上传

    文件上传是我们会经常用到的一个业务,其实在h5中新增了FormData的对象,用它来提交表单,并且可以提交二进制文件,所以今天就写写文件上传,希望可以对大家有帮助 FormData 上传文件实例 首先 ...

  3. GlusterFS分布式存储集群-1. 部署

    参考文档: Quick Start Guide:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/ Instal ...

  4. js传输txt文档内容

    要求:实现修改text文档内容,即可将text修改内容传到页面显示: HTML: <!doctype html> <html lang="en"> < ...

  5. 简单安装与使用虚拟环境virtualenv

    安装虚拟环境的命令如下: sudo pip install virtualenv sudo pip install virtualenvwrapper 创建虚拟环境的命令如下: mkvirtualen ...

  6. PHP.ini 能不能加载子配置文件 ?

    答案是不能,php这个地方用的是另一个方案解决的 编译的时候 用这个参数 --with-config-file-scan-dir指定一个目录 然后在这个目录里面加载ini   https://www. ...

  7. PHP处理表单数据的一个安全回顾(记录教训)

    曾经看过一个安全文章中写过这么一条 表单输入数据要做 htmlspecialchars_decode 表单输出数据要做htmlspecialchars 当时还不是很理解为什么,自己也没遇到问题,所以就 ...

  8. [linux] LVM原磁盘扩容(非增加磁盘)

    阿里云机器,ECS运行时磁盘由300G扩容到500,重启机器生效后登录.可以看到/data目录总大小300G,/dev/vdb已经扩容到500G. [root@HD1g-elasticsearch2 ...

  9. 第二阶段Sprint冲刺会议5

    进展:能够保存到手机或内存卡上,没有实现自己选路径,指定路径为内存卡并能够播放已录制好的视频.

  10. “吃神么,买神么”的第一个Sprint计划(第三天)

    “吃神么,买神么”项目Sprint计划 ——5.23  星期六(第三天)立会内容与进度 摘要:今天的立会主要是报告进度以及遇到的困难. 进度:logo正在进行中,其他基本没什么问题.都确定要做出来的大 ...