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 ...
随机推荐
- selenium三大切换的骚操作之显性等待
一.handle窗口切换 当点击某个元素后,会重新生成一个新的页签,但此时我们的操作仍然在原先的窗口当中,如果要在新的窗口继续操作元素,那么就要用到handle窗口切换的方法. 常用方法: windo ...
- Protractor-引入Cucumber
上一篇博文中我们已经在package.json中写入了cucumber依赖库,在执行 npm install 之后,cucumber就已经下载好了.接下来要做的是修改conf.js,请参考下图: 去年 ...
- MySQL for OPS 09:MHA + Atlas 实现读写分离高可用
写在前面的话 前面做了 MHA 高可用,但是存在这样一个问题,我们花了 4 台机器,但是最终被利用起来的也就一台,主库.这样硬件利用率才 25%,这意味着除非发生故障,不然其他几台机器都是摆设.明显的 ...
- .net core event bus
NServiceBus (收费) https://docs.particular.net/tutorials/quickstart/ MassTransit http://masstransit-pr ...
- 二维码生成 Gma.QrCodeNet (目前测试支持.net4.0及以上,但vs版本2010不可以 NuGet中搜索不到程序包)
1.添加程序包 2.生产二维码方法 #region 二维码 /// <summary> /// 生成二维码 /// </summary> /// <param name= ...
- JS实现根据两点位置的经纬度获取距离
// 经纬度转换成三角函数中度分表形式. function rad(d) { return d * Math.PI / 180.0; } // 根据经纬度计算距离,参数分别为第一点的纬度,经度:第二点 ...
- Python爬取Boss直聘,帮你获取全国各类职业薪酬榜
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王翔 清风Python PS:如有需要Python学习资料的小伙伴 ...
- log4j笔记----输出格式
数说明例子 %c 列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间 log4j配置文件参数举例 输出显示媒介 假设当前logger名字空间是&q ...
- 区块链社交APP协议分析:BeeChat
- BeeChat是什么 - BeeChat报文情况 BeeChat使用过程中产生的报文如下: 可以看到,其使用443端口,但内容并非SSL承载,格式不符合SSL,内容中含MsgNtf等明文串,但大部 ...
- Java实现单链表反转操作
单链表是一种常见的数据结构,由一个个节点通过指针方式连接而成,每个节点由两部分组成:一是数据域,用于存储节点数据.二是指针域,用于存储下一个节点的地址.在Java中定义如下: public class ...