C/C++教程

TZOJ 5374: C++实验:STL之全排列

本文主要是介绍TZOJ 5374: C++实验:STL之全排列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

描述

 

 

使用STL中的next_permutation函数输出一个序列的全排列。

部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。

 

 

  • C++
int main()
{
    vector<int> vec;
    int n, x;
    cin>>n;
    while(n--)
    {
        cin>>x;
        vec.push_back(x);
    }
    Permutation(vec);
    return 0;
}

 

输入

 

 

第一行为一个正整数n(n<8)。

第二行有n个整数。

 

 

输出

 

 

从小到大顺序(第一个数小的先输出,如果相等则第二个小的先输出,以此类推)输出全排列。

 

 

样例输入

 

3
3 1 2

样例输出

 

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

AC感想:全排列方法next_permutation模板写法,以后忘了回来翻翻就是了

#include<bits/stdc++.h>
using namespace std;
void Permutation(vector<int>&vec)
{
    sort(vec.begin(),vec.end());
    do
    {
        int i;
        for(i=0;i<vec.size();i++)
        {
            cout<<vec[i];
            if(i!=vec.size()-1)cout<<" ";
        }
        cout<<endl;
    }while(next_permutation(vec.begin(),vec.end()));
} 
int main()
{
    vector<int> vec;
    int n, x;
    cin>>n;
    while(n--)
    {
        cin>>x;
        vec.push_back(x);
    }
    Permutation(vec);
    return 0;
}

 

这篇关于TZOJ 5374: C++实验:STL之全排列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!