【NOIP2004】【Luogu1088】火星人(枚举排列)
problem
- 给定一个长为n的排列
- 求他的后面的第m个排列
- n<1e4,m<100
solution
C++STL的next_permutation了解一下,复杂度O(n)的。
全题复杂度O(mn)
codes
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 10010;
int a[maxn];
int main(){
int n, m;
cin>>n>>m;
for(int i = 1; i <= n; i++)cin>>a[i];
for(int i = 1; i <= m; i++)next_permutation(a+1,a+n+1);
for(int i = 1; i <= n; i++)cout<<a[i]<<' ';
return 0;
}