文章标题

来源:互联网 发布:gephi输入数据 编辑:程序博客网 时间:2024/06/04 17:46

第几是谁?
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
现在有”abcdefghijkl”12个字符,将其按字典序排列,如果给出任意一种排列,我们能说出这个排列在所有的排列中是第几小的。但是现在我们给出它是第几小,需要你求出它所代表的序列.
输入
第一行有一个整数n(0

//别人写的,我不会做//涨姿势了,我这个菜鸟第一次用康托公式#include<iostream>#include<algorithm>#include<string.h>using namespace std;int a[14]={1,2,6,24,120,720,5040,40320,362880 ,3628800,39916800};int main(){    int n,j,i,k=0,m,b[15];    char c[13]="abcdefghijkl";    cin>>n;    while(n--)    {        cin>>m;        j=10;        m--;        while(j>=0)        {            b[k]=m/a[j];            m=m%a[j];            j--;            k++;        }        for(i=0;i<k;i++)        {            cout<<c[ b[i] ];            c[ b[i] ]='z';            sort(c,c+12);        }        cout<<c[0]<<endl;        memset(b,0,12);        k=0;        for(i=0;i<12;i++)        c[i]='a'+i;    }    return 0;}