您的位置:首页 > 其它

hdu 1027 Ignatius and the Princess II (全排列)

2017-02-08 17:24 357 查看
链  接:点击打开链接

题   意:给你两个数n,m,求1 到 m全排列第m小的排列

思   路:全排列的大小是根据它的逆序数的大小

 例如 n=5     1 2 3 4 5 逆序数为0 最小

                      1 2 3 5 4 逆序数为1                   

                        ............................................

利用STL中的全排列函数next_permutation(a,a+n)

代  码:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
int a[10005],i,sum=0;
for(i=0;i<n;i++)
a[i]=i+1;
do
{
sum++;
if(sum==m)
break;
}while(next_permutation(a,a+n));
for(i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<a[n-1]<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: