题解 - 取数排列
题目描述
取1到N共N个连续的数字(1≤N≤9),组成每位数不重复的所有可能的N位数,按从小到大的顺序进行编号。当输入一个编号M时,就能打印出与该编号对应的那个N位数。例如,当N=3时,可组成的所有三位数为:

那么,输入编号M=2时,则输出132。
输入
包括两个数,即正整数N(1 <= N <= 9)和正整数M(1 <= M <= 362880)。
输出
只有一行,即与输入的编号M对应的那个N位数。
样例输入
3 2
样例输出 Copy
132
分析
N <= 9,所以可以直接将n全排列,时间复杂度为O(n!),9! = 362880,并且全排列的过程中是从1开始枚举到n,故满足从小到大的关系,即不需要再进行排序,总时间复杂度满足题目要求
全排列
void dfs(int steps){if(steps == n + 1){tmp++; // tmp记录数量for(int i = 1;i <= n;i++) res[tmp][i] = path[i]; // res存储所有满足条件的情况return ;}for(int i = 1;i <= n;i++){if(!st[i]){st[i] = true;path[steps] = i;dfs(steps + 1);st[i] = false;}}
}
代码
#include<bits/stdc++.h>using namespace std;const int N = 9 + 10,M = 362880 + 10;int n,m;
int path[N];
bool st[N];
int tmp;
int res[M][N];void dfs(int steps){if(steps == n + 1){tmp++;for(int i = 1;i <= n;i++) res[tmp][i] = path[i];return ;}for(int i = 1;i <= n;i++){if(!st[i]){st[i] = true;path[steps] = i;dfs(steps + 1);st[i] = false;}}
}int main(){ios::sync_with_stdio;cin.tie(0),cout.tie(0);cin >> n >> m;dfs(1);for(int i = 1;i <= n;i++) cout << res[m][i];return 0;
}
相关文章:
题解 - 取数排列
题目描述 取1到N共N个连续的数字(1≤N≤9),组成每位数不重复的所有可能的N位数,按从小到大的顺序进行编号。当输入一个编号M时,就能打印出与该编号对应的那个N位数。例如,当N=3时,可…...
JAVA实战:借助阿里云实现短信发送功能
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...
高阶函数:JavaScript 编程中的魔法棒
在JavaScript的世界里,高阶函数是一种强大的工具,它允许我们将函数作为参数传递或将函数作为返回值。这种特性使得JavaScript代码更加灵活和强大。本文将深入探讨高阶函数的定义、用法以及在实际项目中的最佳实践,帮助大家更好地理解和应用这…...
Android 12.0 Launcher3从首页开始安装app功能实现
1.前言 在12.0的系统rom定制化开发中,在进行Launcher3的某些功能开发实现过程中,在某些项目中,安装的app比较多,要求在launcher3的首页开始安装 app应用,接下来就需要分析下app安装图标排序的流程,然后在实现相关的功能 2. Launcher3从首页开始安装app功能实现的核心…...
软考高级架构 - 10.5 软件架构演化评估方法
10.4 软件架构演化原则总结 本节提出了18条架构演化的核心原则,并为每条原则设计了简单而有效的度量方法,用于从系统整体层面提供实用信息,帮助评估和指导架构演化。 演化成本控制:成本小于重新开发成本,经济高效。进…...
半导体制造全流程
半导体制造是一个极其复杂且精密的过程,主要涉及将硅片加工成功能强大的芯片。以下是半导体制造的全流程概述: 1. 硅材料制备 硅提纯: 使用冶金级硅,进一步提纯为高纯度硅(电子级硅),纯度可达 …...
国科大网络协议安全期末
完整资料仓库地址:https://gitee.com/etsuyou/UCAS-Network-Protocol-Security 部分题目: 六 论述题10*220 试讨论IPv6解决了IPv4的哪些“痛点”,以及IPv6存在的安全问题试比较IPsec与SSL的安全性 五 简答题5*315 简述MAC欺骗和ARP欺骗的…...
ES动态索引——日志es索引数据按月份存储
一、定义ES索引 NoArgsConstructor AllArgsConstructor Data Accessors(chain true) Document(indexName "charge_pile_log" Constants.ES_TIME_DYNAMIC_INDEX) //(索引名称动态,前面固定,后面月份) public class ChargePileLogESDomain {…...
NLP论文速读(ICML 2024)|面相对齐大语言模型的迁移和合并奖励模型方法
论文速读|Transforming and Combining Rewards for Aligning Large Language Models 论文信息: 简介: 本文探讨了如何使大型语言模型(LLMs)与人类偏好对齐。传统的对齐方法是先从偏好数据中学习一个奖励模型,然后使用这…...
蓝桥杯我来了
最近蓝桥杯报名快要截止了,我们学校开始收费了,我们学校没有校赛,一旦报名缴费就是省赛,虽然一早就在官网上报名了,但是一直在纠结,和家人沟通,和朋友交流,其实只是想寻求外界的支持…...
Vue3+TypeScript+AntVX6实现Web组态(从技术层面与实现层面进行分析)内含实际案例教学
摘要 用Vue3+TypeScript+AntVX6实现Web组态(从技术层面与实现层面进行分析),包含画布创建、节点设计、拖拽实现(实际案例)、节点连线、交互功能,后续文章持续更新。 注:本文章可以根据目录进行导航 文档支持 AntVX6使用文档 https://x6.antv.antgroup.com/tutorial…...
【LeetCode】每日一题 2024_12_13 K 次乘运算后的最终数组 I(暴力)
前言 每天和你一起刷 LeetCode 每日一题~ 小聊两句 1、今天是 12.13 南京大屠杀国家公祭日。铭记历史,勿忘国耻。 2、今天早上去看了 TGA 年度游戏颁奖,小机器人拿下了年度最佳游戏,所有人都震惊了,大伙纷纷问到,谁…...
Plant simulation、Flexsim、Automod、Emulate3D、VisuaComponent仿真软件对比
软件名称物流系统仿真工业布局仿真动画效果数据分析优化虚拟现实/混合现实二次开发虚拟电控和PLC调试 软件行业内特殊功能Emulate3D1.物流设备模块完备,功能灵活设置,涵盖各种设备形态和运作方式 2.唯一将摩擦力、重力、阻力等物理属性融入到物流运动中&…...
深度学习day4|用pytorch实现猴痘病识别
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 🍺要求: 训练过程中保存效果最好的模型参数。 加载最佳模型参数识别本地的一张图片。 调整网络结构使测试集accuracy到达88%&#x…...
批量导出工作簿中高清图片-Excel易用宝
我同事在工作簿中做了三个图表,现在需要将工作簿中的图标导出保存为高清图片,通过右键另存为保存的图片并非高清图片,其实要把Excel工作簿中的图表或图片对象导出为高清图片也很简单。 单击Excel易用宝 Plus,导出高清图片。 在导出…...
外观模式的理解和实践
外观模式(Facade Pattern)是一种常用的软件设计模式,它提供了一个统一的接口,用来访问子系统中的一群接口。该模式定义了一个高层的接口,使得子系统更容易使用。简单来说,外观模式就是通过引入一个外观角色…...
linux离线安装部署redis
版本信息 linux版本:CentOS-7-x86_64 redis版本:redis-6.2.6 VMware:VMware-workstation-full-16.1.1 xshell: Xshell-7.0 安装 1.查看当前虚拟机ip命令:ifconfig -a 2.xhell连接虚拟机 ,在xshell页面点击文件-…...
网管平台(基础篇):路由器的介绍与管理
路由器简介 路由器(Router)是一种计算机网络设备,它的主要作用是将数据通过打包,并按照一定的路径选择算法,将网络传送至目的地。路由器能够连接两个或更多个网络,并根据信道的情况自动选择和设定路由&…...
数据结构——跳表
目录 1.什么是跳表-skiplist 2.skiplist的效率如何保证? 3.skiplist的实现 4.skiplist跟平衡搜索树和哈希表的对比 1.什么是跳表-skiplist skiplist本质上也是一种查找结构,用于解决算法中的查找问题,跟平衡搜索树和哈希表的价值是一样的…...
活动预告 |【Part2】Microsoft Azure 在线技术公开课:基础知识
课程介绍 参加“Azure 在线技术公开课:基础知识”活动,培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动,扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 课…...
AnalogPin库:Arduino模拟信号抗噪与平滑处理实战指南
1. AnalogPin 库概述:面向嵌入式系统的模拟信号抗噪与平滑处理框架AnalogPin 是一个专为 Arduino 平台设计的轻量级 C 类库,其核心目标并非简单封装analogRead(),而是构建一套可配置、可扩展、硬件感知的模拟输入信号调理机制。在工业传感、电…...
OpenClaw异常处理机制:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF任务失败自动恢复
OpenClaw异常处理机制:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF任务失败自动恢复 1. 为什么需要异常处理机制 上周我让OpenClaw执行一个简单的数据整理任务——把散落在十几个Markdown文件里的技术笔记按主题分类归档。本以为是个轻量级操作…...
新手友好:通过快马生成带详解的nodepad项目轻松入门Web开发
作为一个刚接触Web开发的新手,想要自己动手实现一个简易的文本编辑器(nodepad)可能会觉得无从下手。最近我在InsCode(快马)平台上尝试了这个项目,发现整个过程比我预想的要简单很多,特别适合像我这样的初学者来理解Web开发的基本流程。 项目结…...
别再只会用QProgressBar了!用QPainterPath绘制Qt自定义进度条的完整指南
用QPainterPath实现Qt动态进度条的终极艺术 当标准进度条无法满足现代UI设计需求时,Qt的绘图系统为我们打开了无限可能。想象一下:你的应用加载界面不是单调的横条,而是会呼吸的光环、跳动的粒子流或是随音乐律动的波形——这些令人眼前一亮的…...
【磁盘】gdisk 实战:分区创建与删除的完整流程解析
1. 认识gdisk:你的磁盘分区利器 第一次接触磁盘分区工具时,我完全被各种专业术语搞晕了。直到遇到gdisk,才发现原来分区可以这么简单。gdisk是Linux环境下专门用于GPT分区表的交互式工具,相比传统的fdisk,它支持更大容…...
面试官最爱问的归并排序:从递归到非递归,带你彻底搞懂边界条件与内存管理(避坑指南)
归并排序实战:从递归陷阱到非递归优化的工程级实现 在技术面试中,归并排序就像一位老练的考官,总能用各种边界条件挑战候选人的代码功底。我曾见过不少开发者能流畅写出递归版本,却在非递归实现中陷入无限循环;也有候选…...
OpCore-Simplify终极指南:如何快速构建完美的OpenCore EFI配置
OpCore-Simplify终极指南:如何快速构建完美的OpenCore EFI配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的Hackintosh配置…...
终极指南:Claude Squad项目结构解析与核心模块功能详解
终极指南:Claude Squad项目结构解析与核心模块功能详解 【免费下载链接】claude-squad Manage local AI agents like Claude Code and Aider. 10x your productivity 项目地址: https://gitcode.com/gh_mirrors/cl/claude-squad Claude Squad是一款能够帮助开…...
SAR成像CS算法实战:从原理到点目标仿真的MATLAB实现
1. CS算法在SAR成像中的核心价值 第一次接触SAR成像处理时,我被CS(Chirp Scaling)算法的精妙设计震撼到了。这个算法就像一位经验丰富的魔术师,能够将雷达回波中的距离徙动(RCMC)和二次距离压缩(…...
ROS小车仿真进阶:手把手教你用URDF和Xacro为阿克曼转向车‘造轮子’
ROS阿克曼转向车仿真实战:从URDF建模到Gazebo调试全解析 当你在Gazebo中第一次看到自己搭建的阿克曼转向车完美执行转弯指令时,那种成就感堪比看着孩子学会骑自行车。作为ROS开发者,掌握URDF/Xacro建模技术就像获得了一把打开机器人世界的万能…...
