zoukankan      html  css  js  c++  java
  • ACM题目————STL + 全排列

    今天碰到一个函数,感觉挺好用的,全排列函数

    next_permutation!

    求全排列的函数,基本上与自己写的DFS时间复杂度差不多,毕竟是标准库。(2018-1-4 添加) 

    话不多说,直接上题。

    描述

    小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。

    输入
    第一行输入整数N(1<N<10)表示多少组测试数据,
    每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)
    输出
    在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。如
    样例
    样例输入
    2
    3 1
    4 2
    样例输出
    1
    2
    3
    12
    13
    14
    21
    23
    24
    31
    32
    34
    41
    42
    43
    //include <iostream>
    
    using namespace std;
    
    int main()
    {
        int T;
        cin >> T ;
        while( T -- )
        {
            int n, m;
            string str, s;
            cin >> n >> m ;
            for(int i=1; i<=n; i++)
                str += '0' + i ;
            s = str.substr(0,m);//字符串剪切
            cout << s << endl ;
            while(next_permutation(str.begin(),str.end()))
            {
                if( s != str.substr(0,m))
                {
                    s = str.substr(0,m);
                    cout << s << endl ;
                }
            }
        }
    
        return 0;
    }
    
    低调做人,高调做事。
  • 相关阅读:
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现扑克牌排列
    java实现平面点最小距离
    java实现平面点最小距离
    java实现拍7游戏
    java实现拍7游戏
    using_where, Using temporary ,using_filesort 分享
  • 原文地址:https://www.cnblogs.com/Asimple/p/5502311.html
Copyright © 2011-2022 走看看