#include<iostream>
using namespace std;
int factorial[]={1,1,2,6,24,120,720,5040,40320,362880,3628800};//1~10的阶乘
int Cantor(char arr[],int m)
{
int res=0;
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=i+1;j<m;j++)
{
if(arr[i]>arr[j])
{
sum++;
}
}
res+=sum*factorial[m-i-1];
}
return res+1;
}
int main()
{
int m;
cin >> m;
char str[100];
cin >> str;
int res=Cantor(str,m);
cout << res;
return 0;
}
康托展开代码
最新推荐文章于 2024-09-02 23:29:10 发布