40分求助(奖励一关注)

P2597 [ZJOI2012] 灾难

快帮帮我plzplzplz
by allqpsi @ 2023-07-11 09:14:07


![](https://cdn.luogu.com.cn/upload/image_hosting/zvovkcv9.png) 输入 ``` 7 2 4 0 3 0 6 7 0 5 0 6 7 0 0 0 ``` 答案 ``` 0 0 1 0 1 0 0 ``` 您的输出 ``` 0 0 1 0 1 1 0 ``` 和我犯的错误简直一模一样qwq,找了老半天bug,发现我们实现思路不对,节点 $u$ 的直接支配点应该是在**支配树**上 $pre(u)$ 的公共祖先,而不是在 $dfs$ 树上的公共祖先,上面是一个hack数据,真正的支配树应该长这样: ![](https://cdn.luogu.com.cn/upload/image_hosting/v3ccj8y4.png) 然而在 $dfs$ 树上找到的 $1$ 的前驱的 $LCA$ 是 $6$ ,然而在**支配树**上找到的 $1$ 的前驱的 $LCA$ 应该是 $0$ 。 所以,不能 $dfs$ 求直接支配点,而应该根据**拓扑序**依次对每个节点找直接支配点,边建立支配树边查询 $LCA$。
by 阳金里hhhhh @ 2023-07-25 21:13:28


@[allqpsi](/user/380406)
by 阳金里hhhhh @ 2023-07-26 15:16:06


@[阳金里hhhhh](/user/488411) 谢谢大佬
by allqpsi @ 2023-07-31 08:01:48


@[阳金里hhhhh](/user/488411) 感谢你的回复,麻烦再贴一下代码
by allqpsi @ 2023-07-31 11:30:50


@[allqpsi](/user/380406) [我的LCA求DAG支配树代码](https://www.luogu.com.cn/paste/pbywr5mb)
by 阳金里hhhhh @ 2023-07-31 11:42:54


|