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 ...
随机推荐
- 云服务AppId或AppKey和AppSecret生成策略
App key和App Secret App key简称API接口验证序号,是用于验证API接入合法性的.接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站 ...
- python画一片绿叶给你
怎么用 turtle 画一个 π 字,于是我顺手到网上大致搜了下,发现网上没有画这个 π 字的,接着又用谷歌加英文搜索了下,还是没找到现成的答案. 不过通过这次搜索意外发现了一个有趣的网站,网站上有大 ...
- plsql基础练习题
1.键盘输入一个年份,判断是否是闰年; (能被4整除而不能被100整除或者能被100和400同时整除,满足其一即可); 方法1 declare v_year number(4):=&请输入一个 ...
- vs未能正确加载CSharpPackage包,未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
VS2017打开项目时提示未能正确加载CSharpPackage包, 可以使用 devenv命令工具来解决,操作如下 打开vs2017开发人员命令提示符(请使用管理员身份运行),如图 敲入 deve ...
- vue-路由-显示名称
显示名称 方式1: <div id="app"> <!-- 分析: --> <!-- 1. 我们要监听到 文本框数据的改变,这样才能知道 什么时候去拼 ...
- SPA项目开发之首页导航+左侧菜单
Mock.js: 前后端分离之后,前端迫切需要一种机制,不再需要依赖后端接口开发,而mockjs就可以做到这一点 Mock.js是一个模拟数据的生成器,用来帮助前端调试开发.进行前后端的原型分离以及用 ...
- 用Python复制文件的9个方法
Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...
- Java生鲜电商平台-API请求性能调优与性能监控
Java生鲜电商平台-API请求性能调优与性能监控 背景 在做性能分析时,API的执行时间是一个显著的指标,这里使用SpringBoot AOP的方式,通过对接口添加简单注解的方式来打印API的执行时 ...
- centos 安装gitlab
1.开始安装依赖软件:yum -y install policycoreutils openssh-server openssh-clients postfix 2.设置postfix开机自启动,po ...
- 模仿UIApplication创建单例
UIApplicationMain: 1.创建UIApplication--应用程序唯一标识:可设置状态栏.识别联网状态.设置数字.打电话.发邮件.发短信.打开网页 2.创建UIApplication ...