关于卡常
查看原帖
关于卡常
321177
SoyTony楼主2023/4/17 15:10

如果您做法为 O(nn)O(n\sqrt{n}),可以在以下部分卡常:

  • 先 DFS 出重心,只在重心位置统计答案,容易证明这是正确的。

  • 第一次 DFS 时,按照 DFS 序重标号,改成非递归 DFS。

  • 使用邻接表而不是 vector。

  • 在枚举 uu 的子树 vv 时,如果 (u,v)(u,v) 需要断开但 vv 子树内部不存在合法方案,直接 break。

  • 如果 sizusiz_u 小于枚举的连通块大小,直接 continue。

2023/4/17 15:10
加载中...