蓝桥杯_算法提高 排列数
2018-03-23 20:38
232 查看
问题描述 0、1、2三个数字的全排列有六种,按照字母序排列如下:
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。输入格式 一行,包含一个整数n输出格式 一行,包含一组10个数字的全排列样例输入1样例输出0123456789数据规模和约定 0 < n <= 10!
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
#include <queue>
#include <cmath>
#include <math.h>
#define INF 0x3f3f3f3f
#define Lson L,mid,rt<<1
#define Rson mid+1,R,rt<<1|1
using namespace std;
typedef long long ll;
const int MAXN = 101000;
int n,num;
bool flag = false;
int a[15];
int vis[15];
void Init()
{
memset(vis,0,sizeof(vis));
scanf("%d",&n);
num = 0;
}
void DFS(int x)
{
if(flag)
return ;
for(int i = 0;i <= 9;i ++)
{
if(vis[i] == false)
{
a[x] = i;
vis[i] = true;
DFS(x+1);
if(x == 9)
{
num ++;
if(num == n)
{
for(int i =0 ;i < 10;i ++)
printf("%d",a[i]);
printf("\n");
flag = true;
return ;
}
}
vis[i] = false;
}
if(flag)
return ;
}
}
void Solve()
{
DFS(0);
}
int main()
{
Init();
Solve();
return 0;
}
012、021、102、120、201、210
输入一个数n
求0~9十个数的全排列中的第n个(第1个为0123456789)。输入格式 一行,包含一个整数n输出格式 一行,包含一组10个数字的全排列样例输入1样例输出0123456789数据规模和约定 0 < n <= 10!
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <map>
#include <queue>
#include <cmath>
#include <math.h>
#define INF 0x3f3f3f3f
#define Lson L,mid,rt<<1
#define Rson mid+1,R,rt<<1|1
using namespace std;
typedef long long ll;
const int MAXN = 101000;
int n,num;
bool flag = false;
int a[15];
int vis[15];
void Init()
{
memset(vis,0,sizeof(vis));
scanf("%d",&n);
num = 0;
}
void DFS(int x)
{
if(flag)
return ;
for(int i = 0;i <= 9;i ++)
{
if(vis[i] == false)
{
a[x] = i;
vis[i] = true;
DFS(x+1);
if(x == 9)
{
num ++;
if(num == n)
{
for(int i =0 ;i < 10;i ++)
printf("%d",a[i]);
printf("\n");
flag = true;
return ;
}
}
vis[i] = false;
}
if(flag)
return ;
}
}
void Solve()
{
DFS(0);
}
int main()
{
Init();
Solve();
return 0;
}
相关文章推荐
- 蓝桥杯 ADV-103 算法提高 逆序排列
- 蓝桥杯 - 算法提高 排列数 【STL-next_permutation求全排列】
- 蓝桥杯 算法提高 逆序排列
- 蓝桥杯 算法提高 排列数
- 蓝桥杯- 算法提高 逆序排列
- 蓝桥杯 ADV-103 算法提高 逆序排列
- 蓝桥杯算法提高 逆序排列
- 蓝桥杯 ADV-103算法提高 逆序排列
- 蓝桥杯 算法提高 逆序排列
- 算法-蓝桥杯-算法提高 逆序排列(JAVA)
- 蓝桥杯_算法提高_金属采集(树形动态规划)
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯ADV-172 算法提高 身份证排序
- 蓝桥杯 算法提高 快乐司机 (贪心)
- 蓝桥杯_算法提高_金陵十三钗(动态规划)
- 学霸的迷宫-蓝桥杯算法提高-广搜 bfs 经典问题
- 蓝桥杯_算法提高_排列数(深度搜索、递归)
- 蓝桥杯——算法提高 日期计算
- 蓝桥杯 算法提高 三个整数的排序
- 蓝桥杯 ADV-77 算法提高 统计平均成绩