https://blog.csdn.net/lttree/article/details/24798653
网上有答案是用了STL做的,这个是用 的康拓函数,用的是数学知识。
很经典的就是逆康拓函数里面根据某一位数的数怎样由 bi小的比它的个数 来推算出来(用了一个vst数组)。
#include <iostream>
 using namespace std;
const int maxn=1001;
 int  fac[] = {1,1,2,6,24,120,720,5040,40320}; 
int kangtuo(int n,char a[])
 { 
     int i,j,t;
     int sum=0;
     for(int i=0;i<n;i++)
     { 
         t=0;
         for(j=i+1;j<n;j++)
         { 
             if(a[i]>a[j])
                 t++;
         }
         sum+=t*fac[n-i-1];
     }
     return sum+1;
 } 
 int main()
 { 
     int n;
     char a[1001];
     cin >> n;
     cin &

 四光年  于 2018-08-08 15:47:41 发布
