康托展开

百度百科 or OI Wiki

康托展开用于把一组 \(1\sim n\) 的全排列按字典序从小到大编号,压缩为 \(n!\) 的空间。

康托展开是可逆的,即一个排列 \(P\) 可以求出它在第几位,也可以求出第 \(x\) 位的排列。时间复杂度 \(O(n^2)\)\(O(nlogn)\)

康托展开运算:

\(X=\sum_{i=1}^n a_i(n-i)!\)

其中 \(a_i\) 表示排列中第 \(i\) 个数字后面比它小的数字数量。

逆康托展开

百度百科

经验

排列

posted @ 2024-08-13 21:31  liyixin  阅读(5)  评论(0编辑  收藏  举报