P10998 题解

blog。获得题解区最劣复杂度做法(


对于这种三元环(?)的样子的题,直接考虑根号分治

考虑枚举 \((a,b)\),假设 \(u=a,v=b\) 的三元组有 \(S\) 个,根号分治:

  • \(S\le B\),暴力从 \(S\) 个里面选两个作为 \(c,d\),暴力检验,\(O(S^2)\)
  • \(S>B\),由于条件要求存在 \((a,c,d)\),于是可能的 \(c,d\) 只有 \(O(m)\) 个,暴力检验,\(O(m)\)

注意到情况二最多出现 \(O(\dfrac mB)\) 个,于是有总复杂度 \(O(mB^2+\dfrac{m^2}B)\),取 \(B=\sqrt[3]m\) 做到 \(O(m^{5/3})\)

由于根号分治比较难卡,所以根本跑不满,勉强过了。

code,时间复杂度 \(O(m^{5/3})\),代码中取 \(B=70\)

posted @ 2024-09-21 22:19  liangbowen  阅读(15)  评论(0)    收藏  举报