抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

克鲁斯卡尔重构树

有的时候,我们需要对最小生成树进行进一步的研究,比方说我们考虑最小生成树上任意两点路径的最小值,这个可以使用主席树、树剖等做法,
但是我们这样考虑,加入新的点,让边权变为点权,路径权的最小值就成了点权的最小值,如下图所示,最小生成树的点全部成为了克鲁斯卡尔重构树上的叶子,非叶节点充当了边权。

1
2
3
4
5
6
7
graph LR;
1((1))-- 5 ---2((2))
2((2))-- 4 ---3((3))
3((3))-- 3 ---4((4))
1((1))-- 8 ---4((4))
2((2))-- 7 ---5((5))
4((4))-- 2 ---6((6))

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial Euler Tour Tree任何一颗树都能够用欧拉旅行路径来表示,欧拉旅行路径是一个序列,他记录了一颗树的dfs的时候的顺序,记录了进入每个节点的时间和退出该节点的时间,这样以后,子树就成了ETT...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 生成树一个无向图的生成树指的是从图中选若干边构成边集,全部点构成点集,使得这个边集加上点集恰好是一棵树。 生成树计数一个无向无权图(允许重边不允许自环)的邻接矩阵为g,显然这是一个对称矩阵,g[u]...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 虚树就是把树上一些节点拿下来重新建树,插入一些lca之类的点,deltree会删除一颗树,但不会删掉他的边,所以要注意边的情况 123456789101112131415161718192021...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 12345678910111213141516171819202122232425262728293031323334353637383940int top,c[N][2],f[N],tim[N],...

nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 123456789101112131415161718192021222324252627282930313233343536const int maxn=1e5+5;int to[maxn<...