算法提高 排列数 全排列

http://lx.lanqiao.cn/problem.page?gpid=T352

注意题目要求,是按照大小顺序的,所以全排列后,再排序。

#include 
using namespace std;

const int maxn=105;
const int INF=0x3f3f3f3f;

int n;
int a[11];
long long b[3628801];

int main(){

    cin >> n;
    for (int i=0;i<=9;i++){
        a[i]=i;
    }

    int cnt=0;
    do{
        b[cnt]=0;
        for (int i=0;i<=9;i++){
            b[cnt]=b[cnt]*10+a[i];
        }
        cnt++;
    }while (next_permutation(a,a+10));

    sort(b,b+cnt);

    printf("%010lld",b[n-1]);

}

你可能感兴趣的:(枚举)