zoukankan      html  css  js  c++  java
  • nyoj 366 D的小L (全排列)

    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
    /**
        分析:这道题就是求由 1--n 组成的数字的全排列
        方法:next_permutation();
        模板:
            do{
                for (int i = 0; i < n; ++ i)
                    printf ("%d", A[i]);
                printf ("\n");
            } while (next_permutation(A, A + n));
    **/ 

    C/C++代码实现:

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cmath>
    #include <cstdio>
    #include <stack>
    #include <queue>
    
    using namespace std;
    
    int main () {
        int T;
        scanf ("%d", &T);
        while (T --) {
            int n, X[12];
            scanf ("%d", &n);
            for (int i = 0; i < n; ++ i)
                X[i] = i + 1;
                
            do {
                for (int i = 0; i < n; ++ i)
                    printf ("%d", X[i]);
                printf ("\n");
            } while (next_permutation (X, X + n));
        }
        return 0;
    } 
  • 相关阅读:
    qt creator 提醒cannot find lqtmaind collect2: ld returned 1 exit status
    1000以内的完数经典c程序100例
    c# 中dataset的使用
    碰到的gcc和vc函数的区别
    vim简单配置
    莫名其妙的java struts2
    校园网arp病毒防范
    sql语句(逐渐添加中)
    Mysql 关键字保留字(转帖)
    找opencv的lib所在的目录
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/8973929.html
Copyright © 2011-2022 走看看