news 2026/7/13 3:38:47

csp信奥赛C++标准模板库STL案例应用21

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
csp信奥赛C++标准模板库STL案例应用21

csp信奥赛C++标准模板库STL案例应用21

next_permutation实践

题目描述

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

输入格式

一个整数n nn

输出格式

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

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

输入输出样例 1
输入 1
3
输出 1
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
说明/提示

1 ≤ n ≤ 9 1 \leq n \leq 91n9

核心思路

  1. 初始化序列:创建包含1到n的有序向量
  2. 生成排列:利用next_permutation按字典序生成所有排列
  3. 格式输出:使用setw控制输出格式满足题目要求
时间复杂度:O(n! × n)
  • 共有n!个排列
  • 每个排列输出需要O(n)时间
空间复杂度:O(n)
  • 只使用了一个大小为n的向量

代码实现

#include<bits/stdc++.h>// 包含所有标准库头文件(竞赛常用写法)usingnamespacestd;intn;// 全局变量,存储输入的nintmain(){cin>>n;// 读入nvector<int>a;// 创建整型向量a,用于存储当前排列// 初始化向量a为[1, 2, ..., n]for(inti=1;i<=n;i++){a.push_back(i);// 将1到n依次加入向量}// 使用do-while循环生成所有排列// do-while保证至少执行一次,先输出初始排列do{// 输出当前排列for(inti=0;i<n;i++){// 使用setw(5)设置输出宽度为5个字符,右对齐cout<<setw(5)<<a[i];}cout<<endl;// 每个排列后换行// next_permutation将向量a变为字典序的下一个排列// 当没有下一个排列时返回false,循环结束}while(next_permutation(a.begin(),a.end()));return0;}

功能分析

1.输入处理
  • 读取一个整数n,范围1≤n≤9
  • 较小的n值保证了算法在可接受时间内完成(9! = 362880)
2.排列生成机制
  • next_permutation原理:按字典序生成下一个排列
  • 初始状态:向量a为升序排列[1,2,…,n]
  • 终止条件:当序列变为降序排列时,函数返回false
  • 特性:自动处理重复元素(本题中无重复数字)
3.输出格式化
  • 场宽控制setw(5)确保每个数字占5个字符宽度
  • 对齐方式:默认右对齐,符合题目要求
  • 行格式:每个数字后无额外空格,一行一个排列
4.算法特点
  • 简洁性:利用标准库函数,代码量少
  • 正确性:按字典序生成所有排列,与题目要求一致
  • 通用性:适用于任何可比较的元素类型

示例流程(n=3):

  1. 初始状态:[1,2,3]
  2. 第一次循环:输出"1 2 3"
  3. next_permutation生成:[1,3,2]
  4. 第二次循环:输出"1 3 2"
  5. 依此类推,直到[3,2,1]后结束

完整系列资料,请查看专栏:《csp信奥赛C++标准模板库STL》

https://blog.csdn.net/weixin_66461496/category_13108077.html

各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}
  • 一、CSP信奥赛C++通关学习视频课:
    • C++语法基础
    • C++语法进阶
    • C++算法
    • C++数据结构
    • CSP信奥赛数学
    • CSP信奥赛STL
  • 二、CSP信奥赛C++竞赛拿奖视频课:
    • 信奥赛csp-j初赛高频考点解析
    • CSP信奥赛C++复赛集训课(12大高频考点专题集训)
  • 三、考级、竞赛刷题题单及题解:
    • GESP C++考级真题题解
    • CSP信奥赛C++初赛及复赛高频考点真题解析
    • CSP信奥赛C++一等奖通关刷题题单及题解

详细内容:

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转


2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

3、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

  • 2025 csp-j 复赛真题及答案解析(最新更新)
  • 2025 csp-x(山东) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(河南) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(辽宁) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(江西) 复赛真题及答案解析(最新更新)
  • 2025 csp-x(广西) 复赛真题及答案解析(最新更新)
  • 2020 ~ 2024 csp 复赛真题题单及题解
  • 2019 ~ 2022 csp-j 初赛高频考点真题分类解析
  • 2021 ~ 2024 csp-s 初赛高频考点解析
  • 2023 ~ 2024 csp-x (山东)初赛真题及答案解析
  • 2024 csp-j 初赛真题及答案解析
  • 2025 csp-j 初赛真题及答案解析(最新更新)
  • 2025 csp-s 初赛真题及答案解析(最新更新)
  • 2025 csp-x (山东)初赛真题及答案解析(最新更新)
  • 2025 csp-x (江西)初赛真题及答案解析(最新更新)
  • 2025 csp-x (辽宁)初赛真题及答案解析(最新更新)

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

  • 129 道刷题练习和详细题解,涉及:模拟算法、数学思维、二分算法、 前缀和、差分、深搜、广搜、DP专题、 树和图

4、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 22:12:14

Windows Hyper-V虚拟机完美运行macOS实战指南

Windows Hyper-V虚拟机完美运行macOS实战指南 【免费下载链接】OSX-Hyper-V OpenCore configuration for running macOS on Windows Hyper-V. 项目地址: https://gitcode.com/gh_mirrors/os/OSX-Hyper-V 还在为无法在Windows电脑上体验macOS而烦恼吗&#xff1f;开源项目…

作者头像 李华
网站建设 2026/7/9 22:11:42

Realtek R8125驱动完全指南:10分钟实现2.5G高速网络配置

Realtek R8125驱动完全指南&#xff1a;10分钟实现2.5G高速网络配置 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms Realtek RT…

作者头像 李华
网站建设 2026/7/9 22:12:45

3分钟快速上手:浏览器字体渲染与搜索引擎优化终极指南

3分钟快速上手&#xff1a;浏览器字体渲染与搜索引擎优化终极指南 【免费下载链接】GreasyFork-Scripts 该项目开源代码用于主流浏览器的油猴脚本&#xff0c;包含字体渲染脚本 Font Rendering.user.js, 优雅的搜索引擎跳转助手 Google & Baidu Switcher.user.js. 项目地…

作者头像 李华
网站建设 2026/7/1 8:02:56

Bongo Cat深度进阶指南:打造你的专属桌面互动伴侣

还在为单调的编程时光感到乏味&#xff1f;想要一个能实时响应你每个操作的可爱伙伴吗&#xff1f;Bongo Cat这款基于Live2D技术的桌面互动工具&#xff0c;让呆萌猫咪形象与你的键盘敲击和鼠标操作完美同步&#xff0c;为枯燥工作注入无限活力&#xff01; 【免费下载链接】Bo…

作者头像 李华
网站建设 2026/6/29 8:40:08

第一章 基础议题

第一章 基础议题 条款一&#xff1a;仔细区分pointer和references 1.区别 1.指针可以为NULL&#xff0c;引用一定要初始化&#xff08;初值&#xff09;。 string& rs; // 错误 引用必须被初始化 string str1("Nancy"); string& rs str1; // 没问题&#x…

作者头像 李华
网站建设 2026/7/11 7:36:01

RKNN-Toolkit2终极部署指南:从模型转换到硬件加速的完整实践

在边缘计算和嵌入式AI应用快速发展的今天&#xff0c;如何将训练好的深度学习模型高效部署到资源受限的设备上成为技术团队面临的核心挑战。RKNN-Toolkit2作为官方推出的神经网络部署工具链&#xff0c;专门为RKNPU平台设计&#xff0c;为开发者提供了从模型训练到硬件部署的端…

作者头像 李华