66#include " ../../../library/monotonic_stack/monotonic_stack.hpp"
77#include " ../../../library/trees/tree_lift/tree_lift.hpp"
88#include " ../../../library/trees/lca_rmq/lca_rmq.hpp"
9- #include " ../../../library/trees/linear_lca.hpp"
109#include " ../../../library/trees/ladder_decomposition/ladder_decomposition.hpp"
1110#include " ../../../library/trees/ladder_decomposition/linear_kth_par.hpp"
12- #include " ../../../library/trees/linear_kth_path.hpp"
1311int main () {
1412 cin.tie (0 )->sync_with_stdio (0 );
1513 for (int n = 1 ; n <= 100 ; n++) {
@@ -26,31 +24,20 @@ int main() {
2624 }
2725 tree_lift tl (adj);
2826 LCA lc (adj);
29- linear_lca lin_lca (adj);
3027 ladder lad (adj);
31- linear_kth_path lin_kth_path (adj);
3228 for (int i = 0 ; i < 100 ; i++) {
3329 int u = rnd<int >(0 , n - 1 );
3430 int v = rnd<int >(0 , n - 1 );
3531 if (u == v || !dsu.same_set (u, v)) continue ;
3632 auto lca_1 = tl.lca (u, v);
3733 auto lca_2 = lc.lca (u, v);
38- auto lca_3 = lin_lca.lca (u, v);
3934 assert (lca_1 == lca_2);
40- assert (lca_1 == lca_3);
4135 assert (tl.dist_edges (u, v) == lc.dist_edges (u, v));
42- assert (
43- tl.dist_edges (u, v) == lin_lca.dist_edges (u, v));
4436 assert (
4537 tl.kth_path (u, v, 1 ) == lc.next_on_path (u, v));
46- assert (lin_kth_path.kth_path (u, v, 1 ) ==
47- lc.next_on_path (u, v));
4838 if (tl.t [u].d > tl.t [v].d ) swap (u, v);
4939 auto res = tl.kth_par (v, tl.t [v].d - tl.t [u].d );
5040 assert (res == lad.kth_par (v, tl.t [v].d - tl.t [u].d ));
51- assert (res ==
52- lin_kth_path.lin_kp .kth_par (v,
53- tl.t [v].d - tl.t [u].d ));
5441 assert ((u == res) == lc.in_subtree (u, v));
5542 }
5643 }
0 commit comments