杂题收录+简要题解
作者:互联网
Luogu-P2472 [SCOI2007]蜥蜴
一个网格图,每个格点有一个高度,有一些位置有一些蜥蜴,每只蜥蜴可以往外跳到欧几里得距离不超过 \(d\) 的任意一个格点上。一只蜥蜴从一个格点离开后,这个格点的高度会减少1.问最少多少只蜥蜴跳不出网格图。
考虑建立网络流模型。相当于每个点有一个经过次数,问有多少个点能走出去。所以只用原点连蜥蜴在的点,网格图中距离不超过 \(d\) 的两个点两两相连,能走到外面的点连向汇点。然而这样并不能体现一个点最多经过的次数,所以考虑拆点,每个点拆成两个点,两个点之间连上最多经过的边数。跑最大流即可。
代码没写。
CF600E
一个 \(n\) 个点的有根树,每个点有一个颜色,求每个子树内出现次数最多的颜色编号只和。
学了一下 \(\text{dsu on tree}\) 。这是一个很有意思的东西。其实是某种信息的重复利用,具体来说就是对于一个点 \(u\),\(u\) 重复利用 \(u\) 的中儿子 \(son_u\) 上统计的信息。其他轻儿子直接暴力。
考虑这样做的复杂度分析。对于一个点而言,他会被遍历到的次数是有限的。具体来说,他被遍历到的次数其实就是他祖先中一共有多少个点是父亲节点的轻儿子。然而是一个轻儿子字数大小就至少翻倍,所以一个点被遍历的次数最多是 \(\log_2 n\) 。
标签:简要,一个点,个点,题解,格点,次数,遍历,蜥蜴,杂题 来源: https://www.cnblogs.com/YouthRhythms/p/15094177.html