康托展开 压缩

来源:互联网 发布:心动网络怎么样 编辑:程序博客网 时间:2024/04/29 09:23
#include<stdio.h>#include<memory.h>#include <iostream>#include<queue>using namespace std;const int MAX=362882;int s[9]={1,10,100,1000,10000,100000,1000000,10000000,100000000};int jie[9]={0,1,2,6,24,120,720,5040,40320};int visit[MAX];int len[MAX];int four[4];int cantor(int key){    int result,temp[9];    for(int i=8;i>=0;i--)    {        temp[i]=key%10;        key=key/10;    }    result=0;    for(int i=0;i<8;i++)    {        int tot=0;        for(int j=i+1;j<9;j++)            if(temp[j]<temp[i])                tot++;        result+=tot*jie[8-i];    }    return result;}int main(){int t;while(cin>>t){cout<<cantor(t)<<endl;}}