![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ODT树
nbl97
这个作者很懒,什么都没留下…
展开
-
Codeforces896C Willem, Chtholly and Seniorious(出题人原创:ODT算法)
题目n个数,m个操作,操作分4种: 区间加一个数、区间赋值、区间第k小、区间幂次和 第三个操作第四个操作输出结果。 (1 ≤ n, m ≤ 1e5) 所有的数据都是随机的。分析:ODT算法适用于“将一段区间”推平的操作,将序列中连续的相同元素用一个三元组 (L,R,val) 表示,用set来维护。然后根据情况来合并或拆开某一个或几个三元组。通常维护的区间按照某种顺序排序,然后二分找到需要的区原创 2018-04-11 13:25:31 · 1086 阅读 · 0 评论 -
Codeforces915E Physical Education Lessons
题目:现有n个黑色石子。每次将(l,r)内的石子染成黑色或白色。每次染色后输出当前有多少个黑色石子。 (1 ≤ n ≤ 1e9, 1 ≤ q ≤ 3·1e5) 分析:这道题也是用ODT的思想,合并和拆开区间。分析可得:虽然n非常大。但一开始只有一个三元组,每次操作最多增加两个三元组,每个三元组最多删除一次。所以set中元素不会特别多。而黑色石子的和可以随着操作一起维护。用set来维护黑色石子的区原创 2018-04-11 13:44:44 · 116 阅读 · 0 评论