- 2024-12-13[Ynoi2000] tmostnrq 做题记录
link先离线扫描线,相当于在\(l\)这个时刻加入一个点,然后每次令所有点向某个点的方向移动一步,在\(r\)时刻查询某个点的位置。以\(1\)为根,对于\(a_i\)相当于令\(1\toa_i\)这条链上所有点向下移动一步,其他点向上移动一步。我们需要同时支持这两种操作,但是不能每个点暴力
- 2024-06-22P9999 [Ynoi2000] tmostnrq 题解
巨大难写题。就这样一个毒瘤的题,还有人把时空缩小成二分之一放在模拟赛,太好笑了。思路首先将询问离线。我们在\(l_i\)处加入这个点,在\(r_i\)处查询这个点在哪里。那么我们就需要有一个数据结构支持让所有树上的节点一起动。考虑所有点往\(x\)处动。那么对于在\(1\si
- 2024-02-19P9997 [Ynoi2000] pmpkmp
我永远喜欢数据结构。lxl大毒瘤!开写到AC耗时\(5\)天的大毒瘤题,期间学习了神仙@云浅知处的思路。他修改部分的代码也帮助我找到锅AC,膜拜云浅!本题是CF1045JMoonwalkchallenge的加强版,码量超过\(6\text{KB}\),作为一名对读者负责人的笔者,我在此必须郑重警告:\[\color{re
- 2024-01-23[Ynoi2000] pri
问题等价于区间翻转区间顺序对数,显然没有复杂度比较好的做法。将操作序列每\(B\)个分一组,对每组进行处理。\(B\)个操作会将序列划分为\(B\)个连续段,在每次操作后都是连续段的一个排列,以及每个连续段内部可能翻转。我们称每个连续段为一个等价类。将值域按\(C\)大小分块
- 2023-12-29P9995 [Ynoi2000] rspcn 题解
思路比较典的ODT题目。发现排序是一个非常有性质的操作。它对区间的更改与颜色段均摊差不多。那么我们可以想到用ODT来维护这一整个序列。具体的,区间排序操作可以用ODT维护每次排序产生的段,每段用线段树维护排序后的结果。每次修改就可以进行线段树的分裂与合并。如