P1088 题解

· · 题解

题目传送门

思路

改变手指顺序的过程其实就是在做全排列,故给序列做 M 次全排列即可。

AC CODE

#include<bits/stdc++.h>
using namespace std;
int read(){int x=0;char f=1,ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
const int N=1e4+10;
int a[N];
int main(){
    int n=read(),m=read();
    for(int i=1;i<=n;++i)
        a[i]=read();
    while(m--)
        next_permutation(a+1,a+n+1);
    for(int i=1;i<=n;++i)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}