信息
- ID
- 1659
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
共有 MN 个候选序列。
把 A 映射为 A′=(AP1,…,APN),这是一个双射,因此在所有满足 A=A′ 的序列中,A<A′ 与 A>A′ 的数量相同。只需扣除满足 A=A′ 的序列,再除以二。
条件 A=A′ 等价于对每个 i 都有 Ai=APi。把排列分解成 C 个环后,同一环上的所有位置必须取相同值,而不同环可以独立选择,所以共有 MC 个不动序列。答案即 2MN−MCmod998244353。
线性遍历排列即可求出环数,两次快速幂的复杂度为 O(logN),总时间复杂度 O(N+logN),空间复杂度 O(N)。