hdu1027(n个数的按字典序排列的第m个序列)
题目信息:给出n。m,求n个数的按字典序排列的第m个序列
http://acm.hdu.edu.cn/showproblem.php?
pid=1027
AC代码:
/**
*全排列的个数(次序)
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
int a[1001],x;
using namespace std;
void print(int n){
for(int i=1;i<n;i++){
cout<<a[i]<<" ";
}
cout<<a
<<endl;
}
void range(int k,int n,int m){//自定义的全排列函数(超时?
)
if(k==n) {
++x;
if(x==m){//控制全排列次数
print(n);
return;
}
}
for(int i=k;i<=n;i++){
swap(a[k],a[i]);
range(k+1,n,m);
swap(a[k],a[i]);
}
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
for(int i=1;i<=n;i++) a[i]=i;
x=0;
//range(1,n,m);
for(int i=1;i<m;i++){//进行m-1次全排列
next_permutation(a+1,a+n+1);//全排列库函数,从1開始,相当于迭代器
}
for(int i=1;i<n;i++){
cout<<a[i]<<" ";
}
cout<<a
<<endl;
}
return 0;
}
- hdu1027 给出n,m,求n个数的按字典序排列的第m个序列
- hdu1027(n个数的按字典序排列的第m个序列)
- 经典题:求字典序第m个的序列(2062)
- (POJ 3687)Labeling Balls [逆top序列] 求按照某种排列方式的字典序最小的top序列
- 【Good Bye 2014B】【Floyd or 并查集】New Year Permutation 全排列有位置交换序列 使得字典序尽可能小
- 微软笔试编程题 求多少个子序列符合斐波那契排列
- 排列的字典序问题
- 求一个序列的全部排列
- 1364 最大字典序排列
- (POJ 1270)Following Orders 求序列在限制条件下的 [全排列]
- 单链表应用举例(单链表A和单链表B的元素都是非递减排列,利用单链表的基本运算,将它们合并成一个单链表C,要求C也是非递减序列)
- 1255 字典序最小的子序列 (水题+技巧)
- 51nod 1255 字典序最小的子序列 贪心
- 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
- 华为OJ---给定n个字符串,对n个字符串按照字典序排列
- 排列的字典序问题
- BZOJ 1005 [HNOI2008]明明的烦恼 purfer序列,排列组合
- 排列的字典序问题
- 排列的字典序问题Permrank题解
- 第k个字典序全排列(kth permutation)- 康托排列