• 2024-09-01【题解】Solution Set - NOIP2024模拟赛4
    【题解】SolutionSet-NOIP2024模拟赛4https://www.becoder.com.cn/contest/5501T2沉默乐团https://www.becoder.com.cn/submission/2593352T3深黯「军团」记录一下考场思路:首先对于长度为\(n\)所有排列,按顺序求出她的逆序对数量。然后找到了规律。后面基于此,写出
  • 2024-08-04康托(Cantor)展开与逆展开理解与运用
    前言    文章仅作参考、学习    作者本人的文章是分享自己对于一些算法、数据结构、技巧的理解,写的内容可能比较简单或偏于大众化,也更好理解。文章后面通常会配套题目与题解:)。    本文章内容依据“CCBY-NC-SA4.0”许可证进行授权。转载请署名、
  • 2024-04-04第十三届蓝桥杯 C/C++ 大学 A 组 排列距离 康托和逆康托展开
    偏个题:算阶乘int可以到12,longlong可以到20(12和20,好记)背景知识康托展开原理n个数字或者字符全排列(每个元素只用一次),从小到大按照字典序排列好,从0开始给他们编号,从字符串映射到编号就是康托展开。从最高位向低位计算:若取小于最高位的数字,则后面任意取都是小于这个排列的若
  • 2024-01-27闲话1.27
    我才知道arc更新了
  • 2023-12-31康托展开
    通过数学角度严格小于的数目+1得到因为4!>3*3!+2*2!+1*1!所以排名  除以  向下取整就是有多少个数小于这个排列的第一位   
  • 2023-08-28【讲解】康托展开
    问题是这样的,给出一个\(1\simN\)全排列,求在所有\(1\simN\)全排列中的排名。如果暴力枚举\(1\simN\)每一个全排列,再\(O(N)\)判断是否符合,时间复杂度轻松爆炸,这时候便需要康托展开。首先把这个\(1\simN\)的全排列记为\(A\),他从左往右的第\(i\)位记为\(A_i\),问题
  • 2023-07-24康托展开及康托逆展开运算总结
    前文:这个东西是我准备进攻一道Astar算法的八数码题目时,遇到的。决定先搞懂这个,再进攻八数码(传说中那道不做人生不完整的题目)。 康托展开:百度百科给出的定义是:康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。康托展开的实质是计算当前排列在所有由小到大全
  • 2023-07-22康托展开
    这应该是数学吧?康托展开要求的就是解决排列问题的一种数学,具体解决的是一组数的一个合法排列在这组数的全部排列中的排名应该就只能解决这个吧?它的解决方式也挺简单的,有一个比较方便的公式$$ans=\sum_{i=1}^{n}sum_{ai}*(n-i)!$$感性理解一下:比如有一个序列\(2,4
  • 2023-07-18【组合数学】康托展开 学习笔记
    康托展开将\(1...n\)的所有排列按照字典序进行排序,某个排列的排名可以通过康托展开的方法求出。原理观察排列\(2,3,1,4\)和\(2,3,4,1\),发现第一个不同的位置是第三位,而且第一个排列的第三位比第二个小,根据字典序的性质,第一个排列的排名在第二个之前。从这里我们也可以发
  • 2023-07-16康托展开
    简介:康托展开可以求解一个排列的序号,比如:12345序号为1 ,12354序号为2,按字典序增加编号递增,依次类推。康托逆展开可以求解一个序号它对应的排列是什么。 康托展开解释:先给出康托展开的公式:                          
  • 2023-05-05笔记
    康托展开和逆康托展开康托展开和逆康托展开(转)-Sky丨Star-博客园(cnblogs.com)康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次逆康托展开则是由名次得出该名次的排列组合公式:康托展开值X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!X表示该
  • 2023-05-04康托编码与解码
    简介对于一个集合{1,2,...,n},其不同排列有\(n!\)种,将各种排列按照字典序从小到大编号(0~\(n!-1\))。康托编码与解码旨在解决这么一个问题:给定一个排列X,它的序号是多少。或者给定一个序号,它的排列是怎么样的。康托表达式\(X=f(n)\cdot(n-1)!+f(n-1)\cdot(n-2)!+
  • 2023-04-26康托展开 全排列与其字典序的双映射转换
    对于给定的序列123,其全排列有6种,按照字典序从小到大即为01  23451,2,31,3,22,1,32,3,13,1,23,2,1可以看出,每个全排列序列都唯一对应一个字典序数(从0开始),那么,有什么方法可以根据序列求出其对应的字典序或者根据字典序来推断其对应序列呢一个朴素的思想,我们使用深搜
  • 2023-04-25LeetCode 1643. 第 K 条最小指令
    康托展开一开始无脑枚举全排列,果断超时,还是得看看如果降低计算量。题目destination=[2,3],相当于2个V,3个H,输出全排列去重后的对应位置字典序列内容。忽略去重则问题为全排列,所有可能为:\[(\sumdestination)!=(2+3)!=5!\]k恰好为康托展开结果+1,直接逆向
  • 2023-04-03康托展开
    一个老生常谈的问题,给定一个两两不同字符的排列x,问其在所有排列情况中的排名。很容易得到第一种暴力思路,先找到其所有字符集合的最小排列,再利用c++的next_permutation()函数不断寻找,直到找到原排列。思路清晰,代码简单,时间复杂度却是高达O(n!),可以解决n<=11的情况(如蓝桥
  • 2023-03-24康托洛维奇不等式
    康托洛维奇不等式是数值优化中收敛性分析的一个常用工具:康托洛维奇不等式:设\(Q\)为正定对称阵,\(x\in\mathbb{R}^n\),则有\[\frac{(x^Tx)^2}{(x^TQx)(x^TQ^{-1}x)}\geq
  • 2023-03-16康托展开式与逆康托展开式
    康托展开官方简介:康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。
  • 2023-02-03康托展开
    康托展开名词解释:康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。---康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的
  • 2023-01-27康托展开和康托逆展开
    #include<bits/stdc++.h>usingnamespacestd;intf[20];intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);f[0]=1;for(inti=1;
  • 2022-11-07P5367 【模板】康托展开
    题意求\(1\simN\)的一个给定全排列在所有\(1\simN\)全排列中的排名。结果对\(998244353\)取模。分析模板,又学习了一种新的东西,但好像除了做这道体外,还不知道有
  • 2022-10-16康托展开
    康托展开康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,...,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排
  • 2022-09-03康托展开
    lyin场切黑题太强了首先康托展开是用来求一个全排列的排名的东西。复杂度\(O(n^2)\),树状数组可以到\(O(n\logn)\)。板子简单说一下原理:首先一个长为\(n\)的排列数是\(n!