一些瓜皮

放几个比较优(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. Android——调用高德地图API前期准备

    1.登陆高德开放平台注册账号http://lbs.amap.com/ 2.创建自己的应用并且添加新key 获取发布版安全码获取方法: 在AndroidStudio的Terminal中编译: 输入如下图 ...

  2. 微信小程序自定义 tabbar

    一定的需求情况下,无法使用小程序原生的 tabbar 的时候,需要自行实现一个和 tabbar 功能一模一样的自制组件. 查阅了海量的博客和文档之后,亲自踩坑.总结了三种在不使用微信小程序原生 tab ...

  3. Hyperledger Fabric CA User’s Guide——配置设置(四)

    配置设置 Fabric CA提供了三种方案去配置Fabric CA服务端和客户端,优先顺序是: CLI flags(标识) 环境变量 配置文件 在本文档的其余部分中,我们将对配置文件进行更改.但是,可 ...

  4. 基于神念TGAM的脑波小车(2)

    将数据处理移植到STM32上,采用串口的DMA接收模式,注意的是DMA_MODE采用Circular,DMA_BufferSize>(8*512+36=4132)(小包8个字节,每秒512个,完 ...

  5. 打包一个传统的ASP.NET web app作为Docker镜像

    (1)针对NerdDinner应用的Dockerfile内容如下 PS E:\DockeronWindows\Chapter02\ch02-nerd-dinner> cat .\Dockerfi ...

  6. NIO基本概念

    1.  IO和NIO的区别 IO     面向流(stream oriented)  阻塞(blocking io) 无                  NIO  面向缓冲区(buffer orie ...

  7. (第六周)课上Scrum站立会议演示

    组名:连连看 组长:张政 组员:张金生.李权.武志远 时间:2016.10.13   20:20——20:40 会议内容: 已完成的内容: 1.选定编译语言,安装软件并配置环境,完成了游戏的基本模型. ...

  8. json转对象

    1,引入依赖 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib& ...

  9. 20145214《网络攻防》逆向及Bof基础实践

    20145214<网络攻防>逆向及Bof基础实践 实践说明 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何 ...

  10. 20162314 《Program Design & Data Structures》Learning Summary Of The Ninth Week

    20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The Ninth Week ...