考虑是这样一个问题:
有一颗树,每棵树有两种状态,在该点转换状态有代价,同一状态的点之间有代价边相连。求两个点相遇代价最小值,要求两个点相遇时状态相同。
将图视作两棵树,一棵全是奇点,编号为0,一棵全是偶点,编号为1,两部分的对应点之间一一有边相连。 先求出两棵树对应点之间的最小距离, 用两遍dfs,一遍dfs求出走子树的对应点之间的最小距离,另一遍dfs在此基础上看看是否能通过走父辈节点来更新最小距离。
然后倍增即可。