YLOJ 2019-10-23模拟赛
前言 补题。 这个YL怎么天天都有人AK,这是一群什么神仙啊 中央集权(emperor) 题目地址 终于出了一道裸题了 最小生成树 搞得我赶快复习了一下最小生成树的时间复杂度 Prim(堆优化): \(\text{O(m*logn)}\) Kruskal(要并查集): \(\text{O(m*logm)}\) 权衡一下,选择 Prim+堆优化,能过 √ 计算树(tree) 题目地址 看完题解不觉说出了一声NB 首先从这棵树的角度上冥思苦想都没有什么好办法,最多树上倍增什么的,感觉行不通 然而我们还是考虑到了一点,树上两点间的的路径一般可以分为两块(设两点为 \(x\) , \(y\) ) \(x->lca_{x,y}\) \(lca_{x,y}->y\) 以下我们就以 \(x\) , \(y\) , \(lca\) ( \(lca_{x,y}\) 简记为 \(lca\) )做例子 我们不妨换一个角度,从 \(lca\) 与 \(x\) , \(y\) 的关系上考虑。这里我们引入根 \(z\) ,想到 \(lca->z\) 与 \(x-z\) 有一条共同的路径 (敲黑板) 前方高能!!! 我们把 \(x->lca\) 这条路径上值的变换记作一次变换, \(x->y\) 的变换由两个变换 \(x->lca->y\) 组成,变换的结果是一个值,这个值就如题意所述,是这条路径上的表达式值。