首页 > 其他分享 >「CF715E」Complete the Permutations

「CF715E」Complete the Permutations

时间:2023-10-28 23:22:43浏览次数:36  
标签:begin end Complete text 置换 Permutations bmatrix CF715E rightarrow

\(\text{「CF715E」Complete the Permutations}\)

\(\text{Link}\)

\(\text{Describe}\)

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

\(\text{Solution}\)

给定置换 \(p,q\),我们记每个 \(p_i\) 连向 \(q_i\) 所得图的置换环数为 \(\text{cyc}\),那么 \(p,q\) 的距离为 \(n-\text{cyc}\),转换为求有 \(\text{cyc}\) 的置换数量.

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

\(0\rightarrow 0\),我们记为 \(E\).

\(p\rightarrow 0\;(p\not =0)\),我们记为 \(P\).

\(0\rightarrow q\;(q\not =0)\),我们记为 \(Q\).

\(p\rightarrow q\;(p,q\not =0)\),我们记为 \(F\).

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

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

  • 考虑 \(0\rightarrow q\) 和 \(0\rightarrow q\) 可以合并为 \(0\rightarrow q\);

  • 考虑 \(0\rightarrow q\) 和 \(0\rightarrow 0\) 可以合并为 \(0\rightarrow 0\);

  • 考虑 \(0\rightarrow q\) 和 \(p\rightarrow 0\) 不可以合并;

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

\[[z^k]P(z)=\sum_{t=k}^P\binom{P}{t}\begin{bmatrix}t\\k\end{bmatrix}(P-t+E-1)^{\underline{P-t}} \]

\[[z^k]Q(z)=\sum_{t=k}^Q\binom{Q}{t}\begin{bmatrix}t\\k\end{bmatrix}(Q-t+E-1)^{\underline{Q-t}} \]

考虑 \(P\) 的组合意义 \(\binom{P}{t}\) 为将所有 \(P\) 边选出 \(t\) 条用来拼成环,而 \(\begin{bmatrix}t\\k\end{bmatrix}\) 为 \(t\) 条边拼成
\(k\) 个环的方案数,我们将剩余的边与 \(P\) 或 \(E\) 合并,由于合并后 \(P\) 边会变少,所以是下降幂,\(Q\) 的组合意义类似。

\[[z^k]E(z)=E!\begin{bmatrix}E\\k\end{bmatrix} \]

考虑将 \(E\) 条边分成 \(k\) 个环为 \(\begin{bmatrix}E\\k\end{bmatrix}\),注意我们可以在原本排列上以任意顺序确定 \(E\) 条边所以要乘上 \(E!\),最后答案为 \([z^k]P(z)Q(z)E(z)\),这里 \(n\le 250\),暴力 \(O(n^2)\) 卷积即可。

\(\text{Details}\)

  • 考虑 \(0\rightarrow q\) 和 \(p\rightarrow 0\) 在 \(p=q\) 可以合并为 \(0\rightarrow 0\) 边;

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

\(\text{Ex}\)

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

\[[z^k]P(z)=\sum_{t=k}^P\binom{P}{t}\begin{bmatrix}t\\k\end{bmatrix}(P-t+E-1)^{\underline{P-t}}\\ [z^k]Q(z)=\sum_{t=k}^Q\binom{Q}{t}\begin{bmatrix}t\\k\end{bmatrix}(Q-t+E-1)^{\underline{Q-t}}\\ \]

待更新

标签:begin,end,Complete,text,置换,Permutations,bmatrix,CF715E,rightarrow
From: https://www.cnblogs.com/JIEGEHHHH/p/17794873.html

相关文章

  • #dp,二项式反演,容斥#CF285E Positions in Permutations
    题目问有多少个长度为\(n\)的排列\(P\)满足\(|P_i-i|=1\)的\(i\)的个数恰好为\(k\)个分析设\(dp_{i,j,k}\)表示前\(i\)个数钦定\(j\)个数满足上述条件且现在\(i\)和\(i+1\)因此被占用的方案数。那么第\(i\)个满足上述条件无非就是放入\(i-1\)或者\(......
  • Codeforces Round 884 (Div. 1 + Div. 2) B. Permutations & Primes
    给一个正整数\(n\),你需要构造一个\(n\)的排列\(p_1,p_2,\cdots,p_n\)。对于排列\(p\)的每个子段\([l,r]\),\(mex_{i=l}^{r}a_i\)的结果为质数的次数尽可能多。此处的\(mex\)最小排除值最低为\(1\)而非\(0\)。不难想到,小质数\(2,3\)容易构造。于是有......
  • CF882E1+CF1882E2 Two Permutations 题解-构造题
    CF882E1+CF1882E2TwoPermutations题解-构造题哇,人类智慧,太智慧了。。。此题作为20231010联考的T3。感觉赛时根本没有去往这方面想。CF1882E1CF1882E2E1是简单版,就是没有要求操作数最小化。E1-EasyVersion方法1首先考虑没有次数限制的,对于单独的每一个串的情况。......
  • CodeForces 1882E2 Two Permutations (Hard Version)
    洛谷传送门CF传送门如何评价,模拟赛搬了一道,前一天晚上代码写了一半的题。考虑如何让操作次数最小。发现直接做太困难了。根本原因是,一次操作对序列的影响太大了。考虑做一些转化,减少一次操作对序列的影响。仍然先考虑一个排列怎么做。不知道为什么可以想到在排列前面添加特......
  • Hydration completed but contains mismatches 报错,如何解决?
    最近在用vue3+node+TS+vite在搭建SSR服务器端渲染项目时候,遇到问题Hydrationcompletedbutcontainsmismatches?字面意思就是客户端激活已完成,但是存在不匹配;若是第一次遇到这个问题,貌似还不是很懂?所谓客户端激活指的是Vue在浏览器端接管由服务器发送的静态HTML,将其变......
  • Qt报错: variable has incomplete typte ‘QJsonObject’
    Qt常见运行失败的记录1.变量声明未实例化变量在头文件声明了,没new出来直接使用,导致程序运行崩溃2.定义变量时候下面出行红线,出现variblehasincompletetype‘QTextStream’variblehasincompletetype'QTextStream未添加QTextStream头文件3.Qt信号与槽连接失败的几......
  • abc321E - Complete Binary Tree
    E-CompleteBinaryTree首先我们只考虑x子树中的答案,非常明显,一定是一个连续的区间,那么我们只需要找到两个端点即可,左端点一直往左走即可,但是右端点要注意,如果走不了,如果左端点存在,说明n就是我们的右端点。处理完子树之后往上跳即可,因为树高只有60#include<cstdio>#include<......
  • [abc321E]Complete Binary Tree
    2023-09-23题目题目传送门翻译翻译难度&重要性(1~10):6题目来源AtCoder题目算法模拟解题思路考场没调出来,考完赶紧写发题解祭奠一下。这道题主要就是模拟,细节比较多。思路就是一层一层的计算贡献:如图,我们首先计算出以结点\(x\)为根的子树第\(k\)层的结点数,再计......
  • E - Complete Binary Tree
    E-CompleteBinaryTree完全二叉树三个值N,X,K,分别表示点的个数,点的编号,求到X点的距离为K点的个数。首先,我们对以X为根的子树进行分析,可以知道到X点距离为K的点的个数为2^k。这里需要特判,深度为K时最左边的编号不能大于N,点的个数就等于min(r,n)-l+1。然后再对它的父亲进行......
  • CF1677D Tokitsukaze and Permutations
    好玩题。对于一个排列\(p\),进行\(k\)轮冒泡,记\(v_i=\sum_{j<i}[p_j<p_i]\),给定\(v_i\),部分值不确定,求合法的\(p\)的个数。\(p\)由\(v\)唯一确定。考虑一个个加数字进去,每次可以判断加入数字与前面数字的相对大小,于是可以确定原排列。只用研究\(v\),不用......