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 ...
随机推荐
- 服务器jvm参数配置
Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) s ...
- ASP.NET Core 模型验证的一个小小坑
今天在我们的一个项目中遇到一个 asp.net core 模型验证(model validation)的小问题.当模型属性的类型是 bool ,而提交上来的该属性值是 null ,asp.net co ...
- C语言程序设计100例之(3): Cantor表
例3 Cantor表 题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 …… 2/1 ...
- 正确使用Spring Data JPA规范
在优锐课的学习分享中探讨了关于,Spring Data JPA的创建主要是为了通过按方法名称生成查询来轻松创建查询. 但是,有时我们需要创建复杂的查询,而无法利用查询生成器.码了很多知识笔记分享给大家 ...
- pytest框架与unittest框架的对比
一.pytest的优势 pytest是基于unittest之上的单元测试框架,它的优势如下: 自动发现测试模块和测试方法 断言使用 assert + 表达式 可以设置测试会话级(session).模块 ...
- Jenkins操作学习 --邮箱配置及测试结果构建
前言 使用jenkins做持续集成工具,构建的整个过程中,肯定要对结果进行记录和跟踪,这里我们以qq邮箱为例,来讲解如何配置jenkins的邮箱及发送构建结果 一.明确邮箱服务器相关信息 这里我们,要 ...
- 总结了11条,我对Python 装饰器的理解
对于每一个学习 Python 的同学,想必对 @ 符号一定不陌生了,正如你所知, @ 符号是装饰器的语法糖,@符号后面的函数就是我们本文的主角:装饰器. 装饰器放在一个函数开始定义的地方,它就像一顶帽 ...
- MySQL学习——操作自定义函数
MySQL学习——操作自定义函数 摘要:本文主要学习了使用DDL语句操作自定义函数的方法. 了解自定义函数 是什么 自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由SQL ...
- CAD绘图大师都在用的46组快捷键,高效绘图必备
学习CAD 是一个需要慢慢积累的过程,千万不要遇到一点小困难就退缩,有困难我们就一起克服它!今天小编也是来帮助大家克服困难的!很多小伙伴学习CAD已经有一段时间了,但是发现自己的绘图效率还是不高,没关 ...
- DesignPattern系列__08UML相关知识
前言 现在,很少有人和90年代一样,自己去实现一个软件的各个方面,也就是说,在工作中,和人沟通是必备的技能.那么,作为一枚码农,如何和他人沟通呢?这就要依靠本文的主题了--UML. 简介 UML--U ...