摘要: 新加的点不会影响之前的询问,所以直接离线,先把所有点都建好。 将问题转化为:用 \(b\) 数组减去 \(a\) 数组,得到的形如 \(1,2,3,\dots\) 的等差序列的最大长度。 考虑将两个序列哈希,预处理出等差数列的哈希值,二分长度即可。而在树上维护路径数组的哈希值,可以用倍增解决。 时间 阅读全文
posted @ 2025-02-09 18:09 zhangxy__hp 阅读(22) 评论(0) 推荐(0)
摘要: 考虑一次询问,显然 DP,设 \(f_{u,0/1}\) 表示走路/坐船到 \(u\) 点的最小花费即可。 多次询问,考虑维护矩阵,广义矩阵乘,倍增处理询问。比如对于一条顺流的边 \(i\),可以构造矩阵: \[\begin{bmatrix} a_i&L+a_i-z_i\\ a_i&a_i-z_i 阅读全文
posted @ 2025-02-09 09:42 zhangxy__hp 阅读(23) 评论(0) 推荐(1)