QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: alpha1022

Posted at: 2026-01-28 02:16:17

Last updated: 2026-01-28 02:16:27

Back to Problem

题解

简要题意.

对于 $n$ 阶排列 $p,q$,称一个 $2n$ 阶排列 $r$ 合法当且仅当:

  • $r_1,r_2,\dots,r_n$ 离散化后等于 $p$。
  • $r_{n+1},r_{n+2},\dots,r_{2n}$ 离散化后等于 $q$。

记 01 串 $s$,其中 $s_i = [r_i < r_{n+i}]$,令 $f(p,q)$ 为所有合法的 $r$ 生成的本质不同的 $s$ 的个数。
给定 $p$ 和含空位的 $q$,求所有 $q$ 的 $f(p,q)$ 之和,对 $998244353$ 取模。

$n \le 100$,也可以出到 $n \le 500$。

注意到我们可以把问题变成 $p=[1,2,\dots,n]$ 的情况,问题得以简化。

接下来证明 $f([1,2,\dots,n],q)$ 就是 $q$ 的上升子序列个数。考虑对于 $s$ 判断是否有方案。将所有小于关系连边,判断是否有环即可。同时可以发现如果有环,一定有长为 $4$ 的环。考虑通过 $q$ 构造合法的 $s$:按照元素从大到小考虑对应位置是 $\texttt 0$ 还是 $\texttt 1$,如果是 $\texttt 0$ 则可以直接删除该位置而无影响;否则要删去一整个后缀。将第二类操作对应上升子序列的元素,从而将 $q$ 删空的方案数就是 $q$ 的上升子序列个数。

不过据说这是偏序集的序理想,与反链构成双射。但是我还不太懂。

接下来可以做到 $O(n^3)$,设 $f(i,j,k)$ 表示考虑了前 $i$ 个数,目前的上升子序列以 $j$ 结尾,填了 $k$ 个问号的方案数即可。

Comments

No comments yet.