和hashi一起用更好一点
康托展开可以求解一个排列的序号,比如:12345 序号为 1 ,12354序号为2,按字典序增加编号递增,依次类推。
康托逆展开可以求解一个序号它对应的排列是什么。
int f[10]={1,1,2,6,24,120,720,5040,40320,362880};
inline int contor(int *A)
{
int sum=0;
for(int i=0;i<9;i++)
{
int x=0;
for(int j=i+1;j<9;j++)
{
if(A[j]<A[i])
{
x++;
}
}
sum+=f[8-i]*x;
}
return sum;
}