YDnoi 补题

把看起来像题的题补了。

5

群青色的前方

考虑若确定了选取的所有端点,如何计算最小距离和。

对于一条边 \((u,fa)\),考虑最少贡献多少。可以发现如果子树 \(u\) 内选点数是奇数那么必贡献一次,否则可以不贡献。

容易发现只需要在子树内尽量配就可以构造出一种方案。所以答案就是满足上述条件的边数。

答案关于 \(k\) 是凸的。

对于单个 \(k\) 的求解直接 wqs 二分即可。

多个的话,经典的凸函数全求值优化方法。定阈值 \(B=\sqrt{n}\),对 \(\leq B\) 的斜率暴力求出对应哪一段,对 \(>B\) 的斜率只能是末尾的 \(\frac{n}{B}\) 的位置,直接 wqs 二分做一下。事实上,也不难直接 dp 去掉 log。

立体主义

一个方案合法当且仅当所有非树边 \((u,v)\) 都满足树上 \(u,v\) 路径上边的 \(\max\) 小于非树边 \((u,v)\) 边权。

可以枚举树边的大小关系,然后根据这个关系组合数算出方案数。把暴力枚举关系改成状压即可通过。

4

等价

对于同一种数,改变它们的相对位置是没有意义的,因此可以确定每个 \(A_i\) 对应哪个 \(B_j\)。令 \(p_i=j\) 得到一个排列。此时合法性等价于 \(i<j \land p_i>p_j \land (a_i,a_j) 互斥\)\((i,j)\) 的存在性。

这个吗,考虑 cdq 分治,内部离线可以处理 \(p_i>p_j\) 这一层偏序,互斥关系用 bitset 搞一下,时间复杂度 \(O(n\log nk/w)\)

通信网络

啊哦,我好困,先加训一下睡觉。

posted @ 2026-07-02 16:42  v1ne0qrs  阅读(8)  评论(0)    收藏  举报