题解 P3710 【方方方的数据结构】
本来这题是打算正常构造数据的,结果出现了意外,我的标程常数实在感人,实在要卡掉暴力大概要开100s一个点......然后就只能出随机数据了,并不知道有没有什么神奇算法可以过,就当做良心送分好了。
考虑将时间轴分块,块大小
对于这一块内的询问,修改的存在与否都是一样的,除了这一块内的询问和这一块内撤销的询问。
考虑以这一块内的询问和这一块内撤销的询问的插入点作为关键点,这些关键点把当前时间轴分成了若干块,相邻关键点之间建一棵线段树或者平衡树维护标记。
查询的时候查询第一棵线段树,判断第一个关键点的询问是否包含它,包含则更新,依次查询判断。
这个做法复杂度是
因为是随机数据,只要把块大小调成