• nyoj_366_D的小L_201403011600


     

    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
    来源
    原创
    上传者
    kapop
     
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 using namespace std;
     5 int s[12]={1,2,3,4,5,6,7,8,9};
     6 int main()
     7 {
     8     int T;
     9     scanf("%d",&T);
    10     while(T--)
    11     {
    12         int i,n;
    13         scanf("%d",&n);
    14         do
    15         {
    16             for(i=0;i<n;i++)
    17             printf("%d",s[i]);
    18             printf("
    ");
    19         }while(next_permutation(s,s+n));
    20     }
    21     return 0;
    22 }
    View Code
     1 #include <stdio.h>
     2 #include <string.h>
     3 int res[12];    //存放结果 
     4 int vis[12];    //标记是否被用过
     5 int n;
     6 void output()
     7 {
     8     int i;
     9     for(i=1;i<=n;i++)
    10     printf("%d",res[i]);
    11     printf("
    ");
    12 } 
    13 void dfs(int step)
    14 {
    15     int i;
    16     if(step>n) //满足深度时输出
    17     output();
    18     else
    19     {
    20         for(i=1;i<=n;i++)
    21         if(!vis[i]) //如果i没有被用过 
    22         {
    23             vis[i]=1;   //用过后标记为用过
    24             res[step]=i;  //存入数组,待会儿输出
    25             dfs(step+1);    //继续找下一位数
    26             vis[i]=0;//函数返回后就以为着回到上一次的for循环,那么这次的i定将被释放(不用),那么标记为没用过 
    27         }
    28     }
    29 }
    30 int main()
    31 {
    32     int T;
    33     scanf("%d",&T);
    34     while(T--)
    35     {
    36         memset(vis,0,sizeof(vis));
    37         scanf("%d",&n);
    38         dfs(1);
    39     }
    40     return 0;
    41 }
  • 相关阅读:
    php5.3连接sqlserver2005
    U盘文件名称变成乱码的解决方法
    sql小计汇总 rollup用法实例分析(转)
    关于document.all.item遇到IE8时无法正常取到数据
    jQuery 库中的 $() 是什么?
    JavaScript内置可用类型
    jquery中$.get()提交和$.post()提交有区别吗?
    什么是CDN?哪些是流行的jQuery CDN?使用CDN有什么好处?
    说一说Servlet的生命周期?
    request.getAttribute()和 request.getParameter()有何区别?
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3575214.html
Copyright © 2020-2023  润新知