HDU 1027(STL_I题)解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1027

------------------------------------------------------------------------------------

题意:输入第一个数表示序列长度。第二个数表示序列变换的次数。要求输出变换后的序列

思路:利用next_permutation,进行n次循环,得到的就是序列变换n次的状态。

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;

    int a[10000],n,m;
int main(void){
    while(~scanf("%d %d",&n,&m)){
        for(int i=0;i<n;i++){
            a[i]=i+1;
        }
        int count =1;
        while(next_permutation(a,a+n))
          {
               count++;
               if (count ==  m) break;
          }
          for(int i=0;i<n-1;i++){
              printf("%d ",a[i]);
          }
          printf("%d",a[n-1]);
        printf("\n");
    }
    
    return 0;

}
View Code

 

posted @ 2018-01-22 16:57  caomp  阅读(86)  评论(0)    收藏  举报