ZROI 19.07.30 简单图论/kk
1.最短路 NOI2019 D2T1 我被这题送Fe了/lb 只有zz才会写二维线段树,比如我。 实际上你只需要矩形取min就可以。 kd-tree可以随便过,最慢的点 \(0.1s\) 。 另外一种简单做法是把边压到堆里,每次找到的最小(出发点+边权)的边一定是最优的,然后清空对应的矩形,线段树套set或者并查集都可以过。(stO _rqy Claris Orz) \(n\) 个点, \(m\) 条边的DAG,求删去每个点后 \(1\) 到 \(n\) 最短路。 \(n,m \leq 3\times 10^5\) 。 拓扑排序之后,对每个点 \(x\) 预处理出 \(f_x,g_x\) ,分别表示 \(1->x\) 和 \(x->n\) 的最短路。 按照拓扑序考虑每个点 \(x\) ,同时维护两个集合 \(A,B\) ,分别表示拓扑序在 \(x\) 前、后的点。 这样答案一定形如$f_a+g_b+(a, b), a \in A,b\in B $。 用堆维护上述结构,当 \(x\) 转移到 \(x+1\) 时,只需把 \(x\) 加入 \(A\) ,并把 \(x+1\) 从 \(B\) 中移除,并处理相应影响即可。 \(n\) 个点, \(m\) 条边的有向图,计算每个点传递闭包大小,允许误差,最多差两倍。 \(n,m\leq 2\times 10^5\) 。 SD省集讲过…