摘要:
题面 这题感觉思路比较正常。首先考虑化式子,原式需要在两棵树上分别求 \(lca\),这很不好。考虑把式子写成 \[ \frac{1}{2}\big(dis_1(x,y)+dep_1(x)+dep_1(y)-2\times dep_2(LCA_2(x,y)\big) \] 对于这个 \(dis_1\ 阅读全文
摘要:
题面 这题真的非常 nb! 如果我们不管这个加叶子的操作,只考虑统计答案:每一次统计和点 \(i\) 能够成对的个数。这个可以用点分树做。注意到那个条件 \(dist(i,j)\leq r_i+r_j\) 相当于 \(dist(i,l)-r_i\leq r_j-dist(j,l)\),每个点统计到这 阅读全文
摘要:
题面 设 \(sum_u\) 为 \(u\) 子树内 \(d\) 的和,\(sum_d\) 和 \(sum_ch\) 意义是常见点分树容斥,记录子树内 \(d\times dist\) 的和。 首先注意一个性质:假设当前答案为 \(u\),那么如果 \(u\) 的某个儿子 \(v\) 的答案更优,那 阅读全文
摘要:
题面 这个题没有修改操作,所以不需要开线段树。跟平常的动态点分治做法一样,每个点开两个 vector 按照 \(x_i\) 排序存储到这个点和到这个点在点分树父亲的距离。每次找一个点的时候,暴力跳点分树父亲,直接在 vector 上二分查找满足 \([l,r]\) 这个区间的点和距离,直接计算即可。 阅读全文
摘要:
题面 动态点分治模板题。考虑建出点分树来之后,在每个点开两棵动态开点线段树,以距离为下标,\(t1\) 记录的是 \(u\) 连通块内到 \(u\) 所有距离为 \(i\) 的点的权值和,\(t2\) 记录的是 \(u\) 连通块内到点分树上 \(u\) 的父亲 \(fa_u\) 所有距离为 \(i 阅读全文
摘要:
题面 从点分治训练题点过来的,发现可以用树形dp……具体做法就是说,设 \(f_{u,0/1/2}\) 表示点 \(u\) 的子树中(包含点 \(u\)),距离 \(\mod 3\) 值为 \(0/1/2\) 的点数。转移和求答案都是 \(O(1)\) 的,总复杂度 \(O(n)\)。 通过这个题可 阅读全文
摘要:
题面 感觉和板子差不多,但是仔细思考一下就会发现,用两个指针扫的时候很难维护 “不选某个子树”的最小值。这时候需要设计一个排序和贪心方案,使得能够使用模板那种双指针方式解决问题。 首先是几个定义:在对于某个根 \(rt\) 更新答案的时候,设 \(a[]\) 表示子树的所有点,\(b[]\) 表示每 阅读全文
摘要:
题面 原始式子是 \[ sum_{k,l,r}=\left\{ \begin{aligned} \sum_{i=l}^r a_i&,k=1\\ \sum_{i=l}^r\sum_{j=i}^rsum_{k-1,i,j}&,k\geq 2\\ \end{aligned} \right. \] 考虑求每 阅读全文
摘要:
题面 推式子+二项式定理+FFT。这个题需要一点生成函数的知识。 首先考虑前缀和,求一个多项式 \(F(x)\) 的前缀和相当于是卷上了一个系数全是 \(1\) 的多项式。即 \[ \begin{aligned} Sum(x)&=F(x)\times \sum_{i=0}^{\infty}x^i\\ 阅读全文
摘要:
题面 又是一道推式子+FFT。看到有些式子看起来很卷,不要犹豫,自信一点,说不定就推出来了呢。 设加的数为 \(x\),转完之后两个数组每一位对应为 \(a[1...n]\) 和 \(b[1...n]\),可得: 要求 \(\min\{\sum_{i=1}^{n}(a_i+x-b_i)^2\}\): 阅读全文
摘要:
题面 看这个题目的式子,好像就是最近学的库仑定律+电场强度??做法推式子FFT。 考虑首先通过 \(E_i=\frac{F_i}{q_i}\) 消掉原式中的一些量。得到: \[ E_i=\sum_{i=0}^j\frac{q_i}{(i-j)^2}-\sum_{i=j}^n\frac{q_i}{(i 阅读全文