算法提高 排列数
Posted 多一份不为什么的坚持
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法提高 排列数相关的知识,希望对你有一定的参考价值。
算法提高 排列数
时间限制:1.0s 内存限制:256.0MB
问题描述
0、1、2三个数字的全排列有六种,按照字母序排列如下:
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。
输入格式
一行,包含一个整数n
输出格式
一行,包含一组10个数字的全排列
样例输入
1
样例输出
0123456789
数据规模和约定
0 < n <= 10!
#include <iostream> #include <cstdio> #include <vector> #include <queue> #include <cstring> #include <algorithm> #include <cstdlib> #define for(i,x,n) for(int i=x;i<n;i++) #define ll long long int #define INF 0x3f3f3f3f #define MOD 1000000007 #define MAX_N 50005 using namespace std; int main() { //freopen("data.txt", "r", stdin); //freopen("data.out", "w", stdout); int a[30]; int n; scanf("%d",&n); for(i,0,10){ a[i]=i; } for(i,1,n){ next_permutation(a,a+10); } for(i,0,10){ printf("%d",a[i]); } //fclose(stdin); //fclose(stdout); return 0; }
以上是关于算法提高 排列数的主要内容,如果未能解决你的问题,请参考以下文章