「CF715E」Complete the Permutations

「CF715E」Complete the Permutations

Link

Describe

给定长为 n 的且部分确定的置换 p,q。定义 p,q 距离为通过交换 p 任意两项变为 q 的最小步数,对于 0kn1 求通过补全 p,q 使得 p,q 距离为 k 的方案数对 998244353 取模的结果。

Solution

给定置换 p,q,我们记每个 pi 连向 qi 所得图的置换环数为 cyc,那么 p,q 的距离为 ncyc,转换为求有 cyc 的置换数量.

在一个不确定的置换中,我们会产生 4 种边。

00,我们记为 E.

p0(p0),我们记为 P.

0q(q0),我们记为 Q.

pq(p,q0),我们记为 F.

我们可以发现 F 边可以将 p,q 视作一个点(对于置换图可以缩点)。

一个重要的观察,通过手玩几组样例后发现 P,EQ,E 可以合并,且与 E 合并后 E 边数量不变

  • 考虑 0q0q 可以合并为 0q

  • 考虑 0q00 可以合并为 00

  • 考虑 0qp0 不可以合并;

所以我们对于每一类边考虑生成函数(我们用 P,Q,E 分别表示对应边的数量)

[zk]P(z)=t=kP(Pt)[tk](Pt+E1)Pt_

[zk]Q(z)=t=kQ(Qt)[tk](Qt+E1)Qt_

考虑 P 的组合意义 (Pt) 为将所有 P 边选出 t 条用来拼成环,而 [tk]t 条边拼成
k 个环的方案数,我们将剩余的边与 PE 合并,由于合并后 P 边会变少,所以是下降幂,Q 的组合意义类似。

[zk]E(z)=E![Ek]

考虑将 E 条边分成 k 个环为 [Ek],注意我们可以在原本排列上以任意顺序确定 E 条边所以要乘上 E!,最后答案为 [zk]P(z)Q(z)E(z),这里 n250,暴力 O(n2) 卷积即可。

Details

  • 考虑 0qp0p=q 可以合并为 00 边;

  • 已确定的置换可能已经存在置换环,需要排除其影响

Ex

此题存在 O(nlogn) 做法,我们发现卷积我们可以 NTT 并不是瓶颈,而瓶颈在于预处理下列式子的值

[zk]P(z)=t=kP(Pt)[tk](Pt+E1)Pt_[zk]Q(z)=t=kQ(Qt)[tk](Qt+E1)Qt_

待更新

作者:littlepinkpig

出处:https://www.cnblogs.com/littlepinkpig/p/17794873.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

你可以在这里自定义其他内容

作者:littlepinkpig

出处:https://www.cnblogs.com/littlepinkpig/p/17794873.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   little_pinkpig  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题
more_horiz
keyboard_arrow_up light_mode palette
选择主题