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 ...
随机推荐
- Linux中vim和vi编辑器的使用
vim 和 vi 的关系: 可以将vim视作vi的高级版本,vim可以用颜色或下划线的方式来显示一些特殊信息.vim不止是文本处理软件,而可以说是一个程序开发工具.因为vim里面加入了很多额外功能,例 ...
- 《转》sql处理百万级以上的数据提高查询速度的方法
处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考 ...
- 【OCR技术系列之二】文字定位于切割
要做文字识别,第一步要考虑的就是怎么将每一个字符从图片中切割下来,然后才可以送入我们设计好的模型进行字符识别.现在就以下面这张图片为例,说一说最一般的字符切割的步骤是哪些. 当然,我们实际上要识别的图 ...
- 15-Django开发REST接口
使用Django开发REST接口 我们以在Django框架中使用的图书以及书中人物案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发(前后端均发送JSON格式数据) ...
- WPF 使用XML作为绑定源时Xaml注意事项
直接在xaml定义时xml时应该注意的! xml数据 <?xml version="1.0" encoding="utf-8"?> <Stri ...
- 数据库——SQL-SERVER练习(1)连接与子查询
一.实验准备 1.复制实验要求文件及“CREATE-TABLES.SQL”文件, 粘贴到本地机桌面. 2.启动SQL-SERVER服务. 3. 运行查询分析器, 点击菜单<文件>/< ...
- .NET MVC5简介(五)管道处理模型IHttpModule
https://www.cnblogs.com/JimmyZhang/archive/2007/09/04/880967.html IHttpModule HTTPRuntime(运行时).在一个控制 ...
- python基础(13):函数名的使用、第一类对象、闭包、迭代器
1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(f ...
- C++ 运算符重载的基本概念
01 运算符重载的需求 C++ 预定义的运算符,只能用于基本数据类型的运算:整型.实型.字符型.逻辑型等等,且不能用于对象的运算.但是我们有时候又很需要在对象之间能用运算符,那么这时我们就要重载运算符 ...
- c# jetbrains rider使用一段时间后
先上一个官方的对比图吧.https://www.jetbrains.com/rider/compare/rider-vs-visual-studio/index.html 功能上直接超越visual ...