AGC028D Chords

题意 : 给出圆上均匀分布的 个点,要求连接 条弦,使得每个点只连接一条弦。

已给出 条弦,问在所有连边方案中,弦形成的联通块数目的和。

答案对 取模。

,时限


将圆转化为 的序列。可以发现两条弦 相交当且仅当两区间相交但不包含(部分相交)。

对于每个联通块,将其拍扁形成覆盖区间 。某组方案内,各个联通块的覆盖区间都不会部分相交。

考虑每个覆盖区间 的贡献系数。

表示点 连出弦的另一个端点。 成为覆盖区间,当且仅当:

  • 在同一个联通块内
  • 对于

考虑如何计算方案数。

个点内部随意匹配的方案数, 为区间 内(初始时)没有弦相连的点数, 表示只考虑点 的方案数。

成为覆盖区间的方案数为

显然有

对于 ,考虑将 内的点随便连,然后减去 不连通的情况。即:

和式中枚举的是第一个联通前缀,可以做到不重不漏。(经典技巧)

复杂度为