【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;
}
posted @ 2018-07-24 09:46  gwj1139177410  阅读(125)  评论(0编辑  收藏  举报
选择