摘要:
link 考虑对于每个连通块,我们寻找一个代表元计数。 可以设定为深度最小的点,若深度同样小,则选定编号更小的。我们对于每个点 \(u\) 求出 \(l_u, r_u\) 表示根据上述比较规则下比 \(u\) 小,且距离不超过 \(C\),最接近 \(u\) 的一左一右两个点。如果 \(l_u, r 阅读全文
posted @ 2024-12-13 20:39
Sktn0089
阅读(25)
评论(0)
推荐(0)
摘要:
Educational。link 连通块问题不强于路径统计问题,考虑点分治,对于每个分治点统计所有包含该点的连通块。 判断一个连通块是否包含一个分治点是容易的,DFS 一遍判断路径上最大最小值是否超出限制。 DFS 可以求出所有点到分治点的路径上的最大最小值,视作一个区间 \([mn_i, mx_i 阅读全文
posted @ 2024-12-13 20:14
Sktn0089
阅读(23)
评论(0)
推荐(0)
摘要:
link 很厉害的题目。 先弱化题目,考虑 \(l = 1, r = n\) 怎么做。 设 \(f(x, y)\) 表示只保留值域在 \([a_x, a_y]\) 的数的最大子段和,有用状态数为 \(\mathcal O(n^2)\)。 我们发现这玩意其实是可以分治的:将原序列分成两半,求出左半部分 阅读全文
posted @ 2024-12-13 20:06
Sktn0089
阅读(43)
评论(0)
推荐(0)
摘要:
link 加深了对分块算法的理解。 题目相当于求解一个区间内每种颜色出现次数平方和,这种题显然无法 polylog。 先尝试分块,将贡献拆成 散块 - 散块;散块 - 整块;整块 - 整块 三种。 散块 - 散块 是容易的,直接用桶计数就好。 整块 - 整块:设 \(d_{c, i}\) 表示颜色 阅读全文
posted @ 2024-12-13 19:51
Sktn0089
阅读(38)
评论(0)
推荐(0)
摘要:
link 先离线扫描线,相当于在 \(l\) 这个时刻加入一个点,然后每次令所有点向某个点的方向移动一步,在 \(r\) 时刻查询某个点的位置。 以 \(1\) 为根,对于 \(a_i\) 相当于令 \(1\to a_i\) 这条链上所有点向下移动一步,其他点向上移动一步。 我们需要同时支持这两种操 阅读全文
posted @ 2024-12-13 19:29
Sktn0089
阅读(27)
评论(0)
推荐(0)
摘要:
好不容易卡过去了,纪念一下。 link 可离线,很容易想到莫队。带修不好维护,考虑 \([l,r]\) 用 ds 维护,莫队扫时间和值域这两维就好了。 所以我们需要支持维护一个 \(\mathtt {01}\) 序列,动态修改某个位置上的数,并求出所有极长 \(\mathtt 1\) 的段的长度平方 阅读全文
posted @ 2024-12-13 19:15
Sktn0089
阅读(24)
评论(0)
推荐(0)

浙公网安备 33010602011771号