摘要:
思路: $\quad$说实话,第一眼看这题想到的是线段树,但无奈 $1<=n<=10^ 9$ ,离散化有点复杂,动态开点又不会,所以使用了一种离线做法,跑的还贼快(大雾 $\quad$现将所有操作存起来, \(dir\) 表示方向, $1$ 为上, $0$ 为左,然后按 \(x\) 为第一关键字, 阅读全文
摘要:
思路: $\quad$这是一道数学题,分别计算每一个点分别作个位,十位... \(n-k\) 位的贡献即可(不可做这一数位的数的这一数位的贡献为 $0$ ),如字符串 $9876543210$ 中 $0$ 只可以作个位, $1$ 只可以作个位和十位,其他数位的贡献为 $0$ ,所以可以得到 \(an 阅读全文
摘要:
思路: $\quad$只需要以题目给定的 \(u\) 为起点跑一遍 \(Dijkstra\) 最短路即可,每次记录每个点的前驱(即到达这个点的边),注意有多个可以选择的边中选择边权最小的,感觉很像一个最小生成树,最后记得要记录树上的边权并排序再输出,起点 \(u\) 是没有前驱的,所以要从 $2$ 阅读全文
摘要:
思路: $\quad$对于此题考虑使用线段树维护,因为有环,所以断环为链,数组开两倍,另外距离换成坐标(距离的前缀和),假设最后求的两棵树分别为 \(x\) , \(y\) \((dis_x<dis_y)\),那么答案就是 $2\times (h_x+h_y)+dis_y-dis_x$ ,就是 \( 阅读全文
摘要:
\(\text{关于本题}\) \(\quad\) \(Dsu\) \(on\) $Tree$模板题,没有做过的可以做做CF600E Lomsat gelral,也是一道模板题,下面就简单讲讲树上启发式合并 (\(DSU\) \(on\) \(Tree\))算法,如果有不懂的可以提出来。 $\qua 阅读全文
摘要:
\(\text{CF246E Blood Cousins Return}\) $\quad$题目链接:CF246E Blood Cousins Return(洛谷的链接) $\quad$一道 \(Dcu\) 模板题(下面会讲),只需要用一个 \(map\) 数组来维护这个名字(字符串)是否出现过,用 阅读全文
摘要:
\(\text{CF375D Tree and Queries}\) $\quad$题目链接:CF375D Tree and Queries(洛谷的链接) 思路 $\quad$标准做法是动态规划,但看到 $4.5s$ 的时限,似乎可以树上启发式合并水过去,只要用 \(num_i\) 和 \(cnt_ 阅读全文
摘要:
\(\text{CF1009F Dominant Indices}\) $\quad$题目链接:CF1009F Dominant Indices(洛谷的链接) $\quad$没有修改操作,询问子树,这就是一道 Dsu 板子题,这个算法又叫树上启发式合并(下面会细讲)。 $\quad$关于此题,用 \ 阅读全文
摘要:
\(\text{CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths}\) $\quad$题目链接:CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh p 阅读全文
摘要:
\(\text{前言}\) $\quad$在 $51$ nod 上做了一道毒瘤题,顺便学了树上启发式合并的算法(又叫 Dcu on Tree、静态链分治),接下来我会先概述树上启发式合并的基本知识,然后结合部分题目讲解,可能会写的很长,做好心理准备。 \(\text{前置知识}\) $\quad$学 阅读全文