参考链接:yummy的博客
康托展开:给出一个全排列,求这是第几个全排列
逆康托展开:给出序列长度,以及这是第几个全排列,求这个排列是谁
引入一个变进制数的概念来求是第几个全排列,参见上面的博客(其实求这个数字的过程还是一个阶乘,只不过我们不需要预处理阶乘,而是像求字符串十进制数时的样子求)。
线段树是权值线段树,维护一个区间和,可以求当前数字之前比他小的数字的个数。
本文详细介绍了康托展开与逆康托展开的原理及应用,通过变进制数的概念求解全排列的序号,以及利用线段树进行区间和维护,高效求解比当前数字小的数的个数。
参考链接:yummy的博客
康托展开:给出一个全排列,求这是第几个全排列
逆康托展开:给出序列长度,以及这是第几个全排列,求这个排列是谁
引入一个变进制数的概念来求是第几个全排列,参见上面的博客(其实求这个数字的过程还是一个阶乘,只不过我们不需要预处理阶乘,而是像求字符串十进制数时的样子求)。
线段树是权值线段树,维护一个区间和,可以求当前数字之前比他小的数字的个数。