康托展开 压缩
来源:互联网 发布:心动网络怎么样 编辑:程序博客网 时间: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;}}