nyoj366_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
来源
原创
上传者
kapop
STL:
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int main(){
    int T;
    int n;
    int a[10]={1,2,3,4,5,6,7,8,9};
    scanf("%d",&T);
    while(T--){
        scanf("%d",&n);
        do{
            for(int i=0;i<n;i++){
                printf("%d",a[i]);
            }
            printf("\n");
        }while(next_permutation(a,a+n));
    }
    return 0;

}

回溯递归:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int T;
int n;
int a[10];
int b[10];//是否已用

void fun(int x){
    if(x==n){
        for(int i=0;i<n;i++){
            printf("%d",a[i]);
        }
        printf("\n");
    }else{
        for(int i=1;i<=n;i++){
            if(b[i]==0){
                a[x]=i;
                b[i]=1;
                fun(x+1);
                b[i]=0;
            }
        }

    }
}

int main(){

    scanf("%d",&T);
    while(T--){
        memset(b,0,sizeof(b));
        scanf("%d",&n);
        fun(0);
    }
    return 0;
}
时间: 2024-10-15 05:04:03

nyoj366_D的小L_字典序_全排列的相关文章

微信小程序配置_小程序页面配置

微信小程序配置_小程序页面配置 我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包含了所有配置选项的简单配置app.json : { "pages": [ "pages/index/index", "pages/logs/index" ], "window": { "navigationBarTitleText": &q

luoguP2526_[SHOI2001]小狗散步_二分图匹配

题意: Grant喜欢带着他的小狗Pandog散步.Grant以一定的速度沿着固定路线走,该路线可能自交.Pandog喜欢游览沿途的景点,不过会在给定的N个点和主人相遇.小狗和主人同时从(X1,Y1)点出发,并同时在(Xn,Yn)点汇合.小狗的速度最快是Grant的两倍.当主人从一个点以直线走向另一个点时,Pandog跑向一个它感兴趣的景点.Pandog每次与主人相遇之前最多只去一个景点. 分析: 我们可以把人每次走的一条路径当作点,显然狗只能从出发点走到符合条件的部分点,把这两个点连边,表示狗

BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP

Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi.陷阱深度为H.如果我 们利用矮人1,矮人2,矮人3,...矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱逃跑了,一 旦一个矮人逃跑了,他就不能再搭人梯了. 我们希望尽可能多的小矮人逃跑, 问最多可以

微信小程序开发框架_类MINA文件结构

微信小程序MINA文件结构 微信小程序包含一个描述整体程序的app和多个描述各自页面的page. 一个微信小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 一个微信小程序的页面由四个文件组成,分别是: 页面逻辑注意:为了方便开发者减少配置项,我们规定描述微信小程序页面的这四个文件必须具有相同的路径与文件名. 原文地址:https://www.cnblogs.com/lanshu/p/9946598.html

壹度DIY_微信小程序组件_小程序插件开发

开源免费插件,diy特有的页面机制,搭配30+自定义组件,让你的站点每一个页面都可以完全自定义,可无缝对接任意小程序,如有疑问加入qq壹度小程序交流群:302866773:或wx:liu2417301781. 配置 1.在app.json中配置插件参数 "plugins": { "myPlugin": { "version": "1.0.1", "provider": "wx0c1e00758a9

Java_太阳系_行星模型_小游戏练习_详细注释

1 //实现MyFrame--实现绘制窗口,和实现重写 重画窗口线程类 2 3 package cn.xiaocangtian.Test; 4 5 import java.awt.Frame; 6 import java.awt.event.WindowAdapter; 7 import java.awt.event.WindowEvent; 8 9 10 public class MyFrame extends Frame { 11 12 //加载窗口 13 public void launc

白色基调小清新风格_纯英文企业网站模板

模板简介 模板类型:静态展示类企业成品网站 模板语言:html/css,gbk简体 文件大小:2M(因含数据包,有些下载包会略大) 支持系统:建站宝盒(NiceBox v8.0) 支持页面:包含但不限定于首页.介绍.产品展示.留言板.联系我们.手机版.咨询等常见页面. 源码介绍:本模板已集成数据包,上传至空间即可使用,因免费版无后台管理,请使用html工具修改相应数据,请注意数据路径. 网站模板整体展示图 安装步骤 1.下载安装包解压缩到本地; 2.打开upload目录,找到index.html

微信小程序(同城小程序)_总结一(实现城市定位)

一.前言 城市切换 城市搜索 二.基本内容 1.豆瓣接口文档 https://douban-api-docs.zce.me/ 2.城市切换用到的接口 获取城市列表 https://douban.uieee.com/v2/loc/list     3.获取和处理城市    3.1.index页面: (1)一开始加载程序在index页面中调用全局的getUserInfo() 和getLocation()方法获取到用户当前的信息 // pages/location/index/index.js var

全排列算法分析(原创方法/一般方法/字典序法)

全排列算法即对给定的一个序列,输出其所有不同的(n!种)排列,例如: 给定序列{1, 2, 3}有{1, 2, 3}.{1, 3, 2}.{2, 1, 3}.{2, 3, 1}.{3, 1, 2}.{3, 2, 1}这6种排列 好像很容易就能写出来,对于更长的序列也只是时间问题,最终肯定能够用笔一一列出来 但是要用程序实现的话,可能让人有点无从下手(乍看好像很简单),下面给出三种不同的解全排列的方法: ------- 一.原创方法 所谓的原创方法就是不考虑算法的效率及其他因素,完全为了解决问题而