CF1140G Double Tree

考虑是这样一个问题:

有一颗树,每棵树有两种状态,在该点转换状态有代价,同一状态的点之间有代价边相连。求两个点相遇代价最小值,要求两个点相遇时状态相同。

将图视作两棵树,一棵全是奇点,编号为0,一棵全是偶点,编号为1,两部分的对应点之间一一有边相连。
先求出两棵树对应点之间的最小距离,
用两遍dfs,一遍dfs求出走子树的对应点之间的最小距离,另一遍dfs在此基础上看看是否能通过走父辈节点来更新最小距离。

CF1140G Double Tree

然后倍增即可。

CF1140G Double Tree

上一篇:Debian添加sudo账户


下一篇:第十四节 FileZilla提权