珂朵莉树 例题小结
珂朵莉树:
这么简洁优雅(暴力)的数据结构,,对于线段树都敲不好的我真的太nice(๑•̀ㅂ•́)و✧了。。
一种数据结构,很好听的名字。。起源于一道题的题目CF896C中文名:威廉,珂朵莉与瑟里欧尼斯
适用情况
适用于题目数据随机,区间修改(赋值、加减),求第k小,区间每个数字的x次方和
思想就是,一段区间整体修改为一个值,把所有数分成一段段值相等的区间;然后用set集合存放(l,r,v)三元变量,表示[l,r]的值都为v。
详细解析:https://www.cnblogs.com/yzhang-rp-inf/p/9443659.html
例题1 CF896C:模板题
https://www.luogu.com.cn/problemnew/solution/CF896C
例题2 幂求和 农大邀请赛:
https://blog.csdn.net/qq_43472263/article/details/103750042
也可以用类似hdu4578的强化线段树区间做法,比较麻烦(还没学)
例题3 CF915E:
方法一:线段树动态开点(还没学)参见洛谷题解
方法二珂朵莉树做法:主要思路:修改模板,assign推平赋值时,顺带计算总和sum
https://www.luogu.com.cn/problemnew/solution/CF915E#
例题4 BZOJ4293割草:维护四元组(多维护了几个值)很好的题
方法一:二分+线段树(暂时不太理解线段树的维护,复习线段树再补)维护什么?怎么维护?为什么这样维护?
https://blog.csdn.net/Maxwei_wzj/article/details/82889218
方法二:二分+珂朵莉树(容易理解,维护的是上一次除草时间、草割后当前的高度)
https://acxblog.site/archives/sol-cdoj-1863.html