zoukankan      html  css  js  c++  java
  • 全排列问题(next_permutation函数)

    D的小L

    时间限制:4000 ms  |  内存限制:65535 KB
    难度:2
     
    描述
          一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡出了个题目想难倒匡匡(小L很D吧),有一个数n(0<n<10),写出1到n的全排列,这时匡匡有点囧了,,,聪明的你能帮匡匡解围吗?
     
    输入
    第一行输入一个数N(0<N<10),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个整数x(0<x<10)
    输出
    按特定顺序输出所有组合。
    特定顺序:每一个组合中的值从小到大排列,组合之间按字典序排列。
    样例输入
    2
    2
    3
    样例输出
    12
    21
    123
    132
    213
    231
    312
    321
    #include<iostream>
    #include<algorithm>
    #include<string.h>
    using namespace std;
    int a[15];
    int main()
    {
        int cases,x,i;
        cin>>cases;
        ++cases;
        while(--cases)
        {
            cin>>x;
            for(i=0; i< x;++i)
                a[i]=i+1;
            for(i=0; i<x;++i)
                cout<<a[i];
            cout<<endl;
            while(next_permutation(a,a+x)==1)//next_permutation函数
    /*这是一个求一个排序的下一个排列的函数,可以遍历全排列,要包含头文件<algorithm>
     与之完全相反的函数还有prev_permutation
    */
            {
                for(i=0; i < x; i++)
                    cout<<a[i];
                cout<<endl;
            }
            memset(a,0,x);
        }
        return 0;
    }
    

      

  • 相关阅读:
    Cents 7 Kubernetes
    Docker registry
    centos 7 安装 docker
    ToList()所带来的性能影响
    C#之Linq、where()、FindAll()的区别
    2.2 数据库高速缓冲区
    ORACLE之autotrace使用
    spring.net简介
    初识批处理
    TIBCO Rendezvous — 技术介绍
  • 原文地址:https://www.cnblogs.com/cwenliu/p/5927839.html
Copyright © 2011-2022 走看看