news 2026/6/23 6:01:03

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/6/12 15:36:22

微信智能助手革命:9大AI模型赋能的高效沟通解决方案

在快节奏的数字化时代&#xff0c;微信已成为我们工作和生活中不可或缺的沟通工具。然而&#xff0c;面对海量的消息和群聊&#xff0c;手动处理不仅效率低下&#xff0c;还容易错过重要信息。今天为大家介绍一款创新的微信智能助手——wechat-bot&#xff0c;它能将你的微信变…

作者头像 李华
网站建设 2026/6/13 15:38:34

实用Bongo Cat桌面伴侣:让工作学习充满趣味的创意工具

实用Bongo Cat桌面伴侣&#xff1a;让工作学习充满趣味的创意工具 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否曾…

作者头像 李华
网站建设 2026/6/12 16:06:36

掌握GenomicSEM:解锁GWAS数据潜能的终极指南

掌握GenomicSEM&#xff1a;解锁GWAS数据潜能的终极指南 【免费下载链接】GenomicSEM R-package for structural equation modeling based on GWAS summary data 项目地址: https://gitcode.com/gh_mirrors/ge/GenomicSEM &#x1f9ec; 你是否曾经面对海量的GWAS汇总数…

作者头像 李华
网站建设 2026/6/18 11:20:16

Typed.js打字动画库:让网页文字“活“起来的终极解决方案

还在为静态网页缺乏动感而烦恼吗&#xff1f;想让你的网站文字像真人打字一样生动有趣吗&#xff1f;Typed.js正是你需要的解决方案&#xff01;这个轻量级的JavaScript打字动画库&#xff0c;能够为任何网页元素添加逼真的打字效果&#xff0c;让你的内容瞬间"活"起…

作者头像 李华
网站建设 2026/6/13 22:32:52

Path Copy Copy:Windows文件路径复制的最佳解决方案

Path Copy Copy&#xff1a;Windows文件路径复制的最佳解决方案 【免费下载链接】pathcopycopy Copy file paths from Windows explorers contextual menu 项目地址: https://gitcode.com/gh_mirrors/pa/pathcopycopy 你是否曾经因为需要在Windows资源管理器中复制文件路…

作者头像 李华
网站建设 2026/6/20 13:24:07

如何选择适合企业的RFID系统解决方案?

在物联网技术赋能企业数字化转型的进程中&#xff0c;RFID&#xff08;射频识别&#xff09;技术凭借非接触式识别、多标签批量读取、数据实时上传等核心优势&#xff0c;已广泛应用于物流仓储、制造业生产溯源、资产管理、零售库存管控等多个领域。然而&#xff0c;企业在选型…

作者头像 李华