欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HDU - 1027 Ignatius and the Princess II (全排列函数)

程序员文章站 2022-03-01 23:20:51
...

题目大意:题目给出n和m,从1到n的一串数字,当然是存在字典序的,就比如1、2、3这三个数,字典序从小到大就是123、132、213、231、312、321。题目要求找出由1到n数字组成的字典序为m的排列;

题目思路 :STL里面有全排列函数哇,n最多才1000个,直接一个一个来就好;

题目链接:题目在这里

AC代码:

#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int num[1005];
int main(void)
{
	int n,m,i,cnt;
	while(~scanf("%d%d",&n,&m))
	{
		memset(num,0,sizeof(num));
		cnt=1;
		for(i=1;i<=n;i++)
		{
			num[i]=i;
		}
		m--;
		while(next_permutation(num+1,num+n+1))
		{
			if(cnt==m)
			{
				for(i=1;i<n;i++)
				   printf("%d ",num[i]);
				printf("%d\n",num[n]);
				break;
			}
			cnt++;
		}
	}
	return 0;
}

呼呼