博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1501 动态树(LCT)
阅读量:4585 次
发布时间:2019-06-09

本文共 372 字,大约阅读时间需要 1 分钟。

题意

 

第一眼觉得只要直接树剖就可以了,但是仔细看了看操作2好像并不简单,树剖没法直接变树。

所以需要用到LCT(link-cut tree)实现操作2,至于操作1,3,4,原本线段树在维护区间和的时候,遇到区间加和区间乘的操作是维护两个lazy标记,一个是加标记一个是乘标记,进行乘操作的时候先把区间和乘上c,再把乘标记和加标记乘上c,遇到区间加的时候需要修改全部四个值,注意的是区间和需要加上size * c,所以还需要维护一个区间size.

在搞明白了线段树维护之后,这个就不难了,像维护线段树一样维护一个LCT,每次修改(加,乘)的时候就把要修改的其中一个点转到根节点,然后直接对他修改,在查询的时候一路Pushdown就可以了

 

转载于:https://www.cnblogs.com/Hugh-Locke/p/11163917.html

你可能感兴趣的文章
蓝牙模块选择经验谈
查看>>
PAT 1060 爱丁顿数(25)(STL-multiset+思路)
查看>>
进程和线程
查看>>
爬取校花网视频
查看>>
mysql root密码忘记最快方法
查看>>
imagemagick imagick
查看>>
DevOps - 版本控制 - Gitlab
查看>>
代码管理必备-----git使用上传码云
查看>>
静态库Lib和动态库Dll
查看>>
获取日k数据
查看>>
【LOJ】 #2132. 「NOI2015」荷马史诗
查看>>
策略模式
查看>>
DirectX11 With Windows SDK--11 混合状态
查看>>
BZOJ2982: combination Lucas模板
查看>>
UVa 10723 Cyborg Genes(LCS变种)
查看>>
Jmeter参数化
查看>>
Linux用iso镜像制作本地yum源
查看>>
在SSH项目中Struts2、Spring、Hibernate分别起到什么作用?
查看>>
网络编程协议
查看>>
5.9
查看>>