【洛谷 P1706】全排列问题 题解(全排列)

简介: 该问题要求按字典序输出从1到n的所有不重复排列。输入为整数n,输出为每行一个的数字序列,每个数字占5个宽度。样例输入3,输出6行全排列。代码使用C++,通过`next_permutation`函数生成所有排列。注意n的范围是1到9。

全排列问题

题目描述

按照字典序输出自然数 $1$ 到 $n$ 所有不重复的排列,即 $n$ 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入格式

一个整数 $n$。

输出格式

由 $1 \sim n$ 组成的所有不重复的数字序列,每行一个序列。

每个数字保留 $5$ 个场宽。

样例 #1

样例输入 #1

3

样例输出 #1

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

提示

$1 \leq n \leq 9$。

思路

直接输出全排列。

AC代码

#include <iostream>
#include <vector>
#include <algorithm>
#include <iomanip>
#define AUTHOR "HEX9CF"
using namespace std;

int main()
{
   
    int n;
    vector<int> v;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
   
        v.push_back(i);
    }
    do
    {
   
        vector<int>::iterator it = v.begin();
        for (; it != v.end(); it++)
        {
   
            cout << setw(5) << *it;
        }
        cout << endl;
    } while (next_permutation(v.begin(), v.end()));
    return 0;
}
目录
相关文章
|
移动开发 JavaScript 前端开发
HLS错误处理
hls.js是一个JavaScript库,可实现HTTP Live Streaming客户端。 它依靠HTML5视频和MediaSource扩展进行播放。
5771 0
|
8月前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
3月前
|
数据采集 人工智能 JSON
手把手教你写一个图片爬虫
本文介绍了一个实用的百度图片爬虫工具,仅需百余行 Python 代码即可实现自动搜索与下载图片功能,适用于需要批量获取图片素材的场景。爬虫包含请求处理、JSON 解析、文件操作等关键技术,并详细解析了其设计与实现原理,适合学习与扩展。
|
C++
【洛谷 P2241】统计方形(数据加强版)题解(循环枚举)
该题目是1997年普及组的一道编程题,要求计算$n\times m$棋盘中的正方形和长方形数量(不计正方形)。输入包含两正整数$n,m\leq 5000$。输出为一行,两个正整数分别表示正方形和长方形数量。示例输入`2 3`,输出`8 10`。解题思路是将矩形数拆分为正方形数和长方形数,然后通过双重循环计算。AC代码使用C++编写,通过累加方法得出结果。
240 0
|
Docker 容器
Docker入门(8)-- Docker 将容器打包成镜像以及导入导出
Docker 将容器打包成镜像以及导入导出
9442 0
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
选中项目,点击右上角的显示全部文件按钮,会将默认隐藏的文件显示出来,选中所需图片,右键,添加到项目,然后选择图片查看属性,生成操作选择resource。完毕。本人目前的解决方案。
951 41
C#WPF 图片在显示时没有问题,但在运行时图片显示不出来的解决
【数据结构】判断二叉树是否是完全二叉树
【数据结构】判断二叉树是否是完全二叉树
608 5
|
存储 Java Apache
Java“NoClassDefFoundError”解决
“Java NoClassDefFoundError”是运行时错误,表示JVM找不到某个类的定义。通常由类路径设置不当、依赖缺失或版本冲突引起。解决方法包括检查类路径、确保所有依赖正确添加及版本兼容。
1875 3
|
监控 Java API
Java获取实时摄像头进行拍照(附源码)
Java是一种通用编程语言,可以用来开发各种类型的应用程序,包括涉及图像处理和相机操作的应用程序。要在Java中获取实时摄像头进行拍照,通常会借助一些,例如或等。这些库和API提供了访问摄像头和图像处理的功能。通过使用这些库和API,你可以编写Java代码来调用摄像头并实时获取视频流。然后,你可以选择从视频流中捕获图像并保存为图片文件。这样,你就能够实现在Java中获取实时摄像头进行拍照的功能。
|
Java API