文章

4

粉丝

501

获赞

4

访问

41.2k

头像
排列生成
P1079
发布于2020年9月25日 21:21
阅读数 8.4k

解题思路:使用C++标准库中next_permutation()算法获取每次的排列,但是此算法不包括序列本身,需要你手动输出序列。还有就是,使用C++中cout输出会超时,改成C语言的printf函数输出。

// 题目描述
// Time Limit: 1000 ms
// Memory Limit: 256 mb
// 一自然数N,设N为3,则关于N的字典序排列为123,132,213,231,312,321。对于一个自然数N(1<= N <= 9 ) , 
// 你要做的便是生成它的字典序排列。
#include
#include
#include

using namespace std;

void get_next(vector& vec)
{
    // int index =  1;
    for(int i = 0; i < vec.size(); ++i)
    {
        cout << vec[i] << " ";
    }
    cout << endl;
    while(next_permutation(vec.begin(), vec.end()))
    {
        vector::iterator it = vec.begin();
        for(; it != vec.end(); ++it)
        {
            cout << *it << " ";
        }
        cout << endl;
...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发