LCT好题总结
写在前面:
初探多项式之后,开始了数据结构之旅,可持久化数据结构的总结大概是咕了,只总结一些$LCT$的题
T1:水管局长数据加强版
发现题中只有删边操作,而我们只会做加边,所有考虑时光倒流
先在最后时刻作出最小生成树,之后$LCT$维护最大值不断$link,cut$加边删边更新答案即可
T2:GERALD07
颓了$B$哥的题解,挺好的一道题,然而$secert$大婶秒切$%%%$
首先联通块数等于总点数减去有效边数
这里的有效边数是指不会因为加入此边而删去在当前查询区间里的边
所以我们为了使一条边尽量有效
应该(在不得不删边的情况下)贪心选择这条路径上最早出现的边并把它删掉
用主席树维护便可以进行查询操作了
T3:在美妙的数学王国中畅游
其实这道题还是偏数学一些
题中给出了$Taylor$展开的式子,考虑直接代入$x0=0$
之后用$LCT$维护一条链的多项式系数,现在问题转化为三种函数的展开
对于$f_1$求导:
$$0:sin(ax+b)$$
$$1:a*cos(ax+b)$$
$$2:-a^2*sin(ax+b)$$
$$3:-a^3*cos(ax+b)$$
$$4:a^4*sin(ax+b)$$
显然是四个一循环
$f_2:$
$$0:e^{ax+b}$$
$$n:a^n*e^{ax+b}$$
$f_3:$本身就是个多项式直接用即可
稍微展开一下发现前两个的分母上是阶乘,所以只保留$15$项左右便可以保证精度
最后上$LCT$,问题便得到了解决
T4:LCA
对查询离线,每个查询的答案便是$calc(R)-calc(L-1)$
$LCA$深度和可以用树上差分实现,每加入一个点相当于把它到根的路径上点权全加$1$
查询的答案便是它到根的路径上的点权和
T5:即时战略
暴力的思路便是每次一直从根一直$explore$到$x$,查询最坏$n^2$次
考虑优化:用一颗$LCT$维护已知点,在$splay$上二分,并在$splay$间来回跳直到找到要找的点
查询复杂度可以做到均摊$n*log_2(n)$
然而毒瘤出题人对于链要求查询$n+log$
维护L,R代表已知区间,失败的期望次数便是$\frac{log_{\frac{4}{3}}n}{2}$
$randomshuffle一$下便可以通过这个测试点
T6:大森林
是个神仙题,看了一晚上题解也没有什么成型的思路
首先探索一下本题的性质:
$1>$
可以离线
$2>$
因为查询保证点是存在的,所以每个点可以在最初就加好,而且并不需要删除
$3>$
离线处理相当于在一棵树上改变一段时间新建的点的父亲,
为了保证复杂度,需要对于每一个$1$操作建一个虚点,
把每个点都建在时间轴上它前面离它最近的虚点下面
虚点之间也要连接起来
用$LCT$便可以做到$log_2(n)$改变父子关系
这道题用虚点的弊端在于不能用$split$查询
因为建虚点无法保证任意两点之间的距离是原树中的距离
但是可以保证每个点到1的距离是原树中的距离
所以可以用$dis[x]+dis[y]-2*dis[LCA(x,y)]$
一道难题便迎刃而解了吧?
其实我理解很不深刻欢迎各路神仙来hack
LCT好题总结的更多相关文章
- [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
		
4817: [Sdoi2017]树点涂色 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 629 Solved: 371[Submit][Status ...
 - Luogu P3690【模板】Link Cut Tree (LCT板题)
		
省选前刷道LCT板题(话说之前没做这道题-) CODE #include<bits/stdc++.h> using namespace std; inline void read(int ...
 - LCT裸题泛做
		
①洞穴勘测 bzoj2049 题意:由若干个操作,每次加入/删除两点间的一条边,询问某两点是否连通.保证任意时刻图都是一个森林.(两点之间至多只有一条路径) 这就是个link+cut+find roo ...
 - bzoj2049-洞穴勘测(动态树lct模板题)
		
Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...
 - BZOJ2843:极地旅行社(LCT入门题)
		
不久之前,Mirko建立了一个旅行社,名叫“极地之梦”.这家旅行社在北极附近购买了N座冰岛,并且提供观光服 务.当地最受欢迎的当然是帝企鹅了,这些小家伙经常成群结队的游走在各个冰岛之间.Mirko的旅 ...
 - LCT做题笔记
		
最近几天打算认真复习LCT,毕竟以前只会板子.正好也可以学点新的用法,这里就用来写做题笔记吧.这个分类比较混乱,主要看感觉,不一定对: 维护森林的LCT 就是最普通,最一般那种的LCT啦.这类题目往往 ...
 - bzoj2049: [Sdoi2008]Cave 洞穴勘测 lct裸题
		
题意:三种操作一种摧毁一条边,一种链接一条边,一种查询两个点是否联通 题解:lct的link和cut即可 /********************************************** ...
 - CF1137F Matches Are Not a Child's Play(LCT思维题)
		
题目 CF1137F 很有意思的题目 做法 直接考虑带修改的做法,上一次最大值为u,这次修改v,则最大值为v了 我们发现:\(u-v\)这条链会留到最后,序列里的其他元素相对位置不变,这条链会\(u\ ...
 - BZOJ 2002 LCT板子题
		
思路: LCT啊... (分块也行) 不过YOUSIKI出了一道“弹飞大爷” 就不能用分块水过去了 //By SiriusRen #include <cstdio> #include &l ...
 
随机推荐
- Python程序中的进程操作-开启多进程(multiprocess.process)
			
目录 一.multiprocess模块 二.multiprocess.process模块 三.process模块介绍 3.1 方法介绍 3.2 属性介绍 3.3 在windows中使用process模 ...
 - C#开发BIMFACE系列23 服务端API之获取模型数据8:获取模型链接信息
			
系列目录 [已更新最新开发文章,点击查看详细] 在Revit等BIM设计工具中可以给模型的某个部位添加链接信息.即类似于在Office Word.Excel 中给一段文字添加本地文件链接或者网 ...
 - pyqt添加启动等待界面
			
一.实验环境 1.Windows7x64_SP1 2.anaconda3.7 + python3.7(anaconda集成,不需单独安装) 3.pyinstaller3.5 #使用pyinstalle ...
 - docker 中 安装配置 mysqlcluster(arm)
			
1:创建两个docker container 这里我使用给指定 container ip的形式创建: 查看容器网络 docker network ls 创建一个新的bridge网络 docker ne ...
 - Linux常用命令之重启关机命令
			
shutdown命令 shutdown命令用来系统关机命令.shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作. 实例 指定现在立即关机: shutdown -h now ...
 - route 相关设置
			
Debian系统 查看路由表: root@debian:~# ip route default via 192.168.6.1 dev enp4s0 10.0.0.0/24 dev br0 proto ...
 - ZooKeeper(二):多个端口监听的建立逻辑解析
			
ZooKeeper 作为优秀的分布系统协调组件,值得一探究竟.它的启动类主要为: 1. 单机版的zk 使用 ZooKeeperServerMain 2. 集群版的zk 使用 QuorumPeerMai ...
 - startsWith(),endsWith()判断当前字符串是否是以给定字符串开始或结尾的
			
package seday01;/** * boolean startsWith(String str) * boolean endsWith(String str) * 判断当前字符串是否是以给定字 ...
 - JDK1.8新特性——Collector接口和Collectors工具类
			
JDK1.8新特性——Collector接口和Collectors工具类 摘要:本文主要学习了在Java1.8中新增的Collector接口和Collectors工具类,以及使用它们在处理集合时的改进 ...
 - JS基础语法---break关键字
			
break关键字: 如果在循环中使用,遇到了break,则立刻跳出当前所在的循环 for (var i = 0; i < 10; i++) { while (true ...