ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

2025.11.24 NOI 模拟赛

2025.11.24 NOI 模拟赛

神秘场。

\(0+100+70\) 不会做 T1 遗憾离场了。不过为啥 hxq 和 yjh 不会 T2。

排列(perm)

原题

首先考虑容斥。记 \(dp_x\) 表示选出 \(x\) 个位置不满足限制的方案数。如果我们已经知道了 \(dp_x\) 那么我们可以通过容斥:

\[ans=\sum dp_x\times (-1)^k(n-k)! \]

轻松算出答案。难点在于如何算 \(dp_x\)

赛时想到了考虑图论建模。在 \(i\) 相同的 \((p_i,q_i)\) 间连边。然后就是一个点覆盖问题。

但是我不会一般图点覆盖。所以我赛时就不会了。

然而实际上你考虑我们这个图由于是由两个排列中的点构成的,度数 \(=2\) 且仅仅会包含环。(原题中有自环,但是搬题人很好心的吧自环去了)。

考虑环怎么做。你发现直接在环上做基本做不了。直接短环成链分讨一下。

\(f_{i,j}\) 表示在一个长度为 \(i\) 的链上选 \(j\) 条边的方案数,\(g_{i,j}\) 表示在一个长度为 \(i\) 的环上选 \(j\) 条边的方案数。

我们在断环成链之后考虑如果我们不选被断掉的这条边,那么方案数就应该是 \(f_{i,j}\)

如果选了这个被断掉的边,那么这时候就和首尾的点有关了。

\(w_{i,j,0/1,0/1}\) 表示在一个长度为 \(i\) 的链上

返回列表