随笔分类 - CodeForces
摘要:dsu on tree模板题 dsu on tree详解 暴力显然O(n2) O(TLE) 我们发现,在 对某个节点的树做统计 前,最后一个儿子的那棵子树统计不用清空 并且,这个不用清空的儿子size越大,显然越优。挑size最大的来就行 O(nlogn) #include<iostrea
阅读全文
摘要:我们考虑用靶子来匹配射击点,可以把靶子按 z 从小到大排序后,依次寻找范围内的编号最小的射击点,并将其删除,正确性显然。 考虑如何优化这个过程,实际上我们的操作分为两种: 1. 在二维平面内找编号最小的点。 2. 在二维平面内删除点。 可以把射击点建出 KDtree ,然后维
阅读全文
摘要:先建出来圆方树,圆点为本身的权值,方点为与之相连的圆点的最小值。 很明显答案就是询问的两点间的路径上的最小值。 考虑修改操作 1 .圆点:直接改 2 .方点:对每个方点开一个 multiset ,存储相邻的点的权值。 我们发现这样的话修改一个圆点的时候会修改很多方点,效率低。 我们将 $
阅读全文
摘要:设 a[i] 为二进制为 i 的列的数量, b[i] 为 i 二进制下前 n 位中 0/1 出现的较小值。 假设我们对列的修改状态为 i ,那么这时的 ans 为 ∑ja[j]×b[i⨁j]
阅读全文
摘要:题目大意 给定 x,y ,求有多少个数列满足其 gcd 为 x ,和为 y。 题解 设 k=x/y,若 k 不是整数则无解。否则就是求和为 k ,gcd=1 的序列个数 容斥考虑: 首先和为 k 的所有序列一共有2k1 个。 若 gcd!=1 则应
阅读全文