警示后人 & 申请更改题解
  • 板块CF1140G Double Tree
  • 楼主lsj2009Isj2OO9
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/12/27 11:15
  • 上次更新2023/12/28 12:27:30
查看原帖
警示后人 & 申请更改题解
468657
lsj2009Isj2OO9楼主2023/12/27 11:15

rt.

  • 如果你 Wrong Answer on test 2:可能是多测不清空。

  • 如果你 Wrong Answer on test 3:则你必须要先调用处理向下走的路径的 dfs,再调用处理向上走的路径的 dfs,这一点第一篇题解没有讲,这里做一个解释。

如图,从一个点到其对应点可能不只有只向上绕/只向下绕的情况,还可能出现上图的情况:先向上,再向下(但是不会出现先向下,再向上的情况,否则这种做法就假了。。)。

如果是你先处理向上绕的情况,这种是统计不到答案里的,但是我们考虑把这种路径劈成两半:

对于起点和中转点 u,vu,v,我们把他们的信息分成两半,第一部分向下走我们把他的信息挂在 lca(u,v)\text{lca}(u,v) 上,再在第二次 dfs 时下传到点 uu 就好了(AtCoder Code Festival 2017 Final J 里也用到了这个 trick)。

所以你必须要先调用处理向下走的路径的 dfs,再调用处理向上走的路径的 dfs。

第一篇题解对这一段解释有误,故申请撤下修正。

2023/12/27 11:15
加载中...