解题思路
1.获取输入n,m
2.获取火星人手指的排列顺序,存放在数组a[N]中
3.加m的结果相当于,以当前排列顺序为基础,进行m次全排列后的排列顺序。因此循环m次,调用next_permutation函数进行全排列
4.输出m次全排列后的数组a,以空格隔开
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[n];
//获取火星人的排列顺序
for (int i = 0; i < n; ++i)
{
cin>>a[i];
}
//加m,即进行m次全排列
for (int i = 0; i < m; ++i)
{
next_permutation(a,a+n);
}
//输出m次全排列后的数组a
for (int i = 0; i < n; ++i)
{
cout<<a[i]<<" ";
}
return 0;
} 


京公网安备 11010502036488号