摘要: #「APIO2019」路灯 (K-D Tree / 树套树 / CDQ + 树状数组) 首先想到一个简单的问题转化 对于一个询问,联通的时间是若干连续的区间$[L_i,R_i]$ 所有的$L_i,R_i+1$都是关键点,即由不连通变为联通的时间 和 由联通变为不连通的时间 把答案转化为$\sum R 阅读全文
posted @ 2020-07-26 14:02 chasedeath 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 「APIO2019」桥梁(询问分块+并查集) 询问每$S$个分块后,每次对于所有块内未被更改的边 及 所有询问 排序,然后依次加入并查集,这一部分复杂度为$O(m \frac(\log m+\alpha(n)))$ 对于$S$条被改变的边,对于每个询问分别考虑这些边的贡献,复杂度为$O(qS)$,由 阅读全文
posted @ 2020-07-26 13:38 chasedeath 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 「APIO2019」奇怪装置 找到循环就很简单了 很显然$y$是每$B$次一循环的,对于每个相邻的$y$循环$x$的值均相差$B+1 \pmod A$ 因此总的循环就是$B+1$对于$A$的循环乘上$B$ 即$\frac{gcd(A,B+1)}\cdot B$ 知道循环节之后,把查询分成$O(n)$ 阅读全文
posted @ 2020-07-26 13:21 chasedeath 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 「APIO2018」选圆圈(K-D Tree/CDQ+Set) Part1 K-D Tree做法 K-D Tree经常用来优化大暴力。。 把圆$(x,y,r)\(视为矩形\)(x-r,y-r,x+r,y+r)\(,依据\)(x,y)$构建K-D Tree 维护K-D Tree每个节点所有矩形最小和最 阅读全文
posted @ 2020-07-26 11:28 chasedeath 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 堆 每个节点权值大于(小根堆)父亲的树形数据结构 以下均讨论小根堆的问题 普通二叉堆 用数组$a[1:n]$构成一棵二叉树来维护堆操作,可以做到 1.插入元素 2.查询堆顶 3.删除堆顶或者删除特定元素(需要记录权值位置) 1.插入元素 先放到$a[n+1]$的位置,然后每次与父亲比较是否交换 vo 阅读全文
posted @ 2020-07-26 08:22 chasedeath 阅读(122) 评论(0) 推荐(0) 编辑