acwing讲解篇之94. 递归实现排列型枚举

文章目录

  • 题目描述
  • 题解思路
  • 题解代码

题目描述

题解思路

定义递归深度deep,数字使用情况used,选择的数字顺序path

进行递归

终止条件为递归深度达到n层时,打印path,然后返回

深度加一
遍历未使用的数字,选择数字,然后进行递归,递归结束,恢复used
恢复深度

直到整个递归结束,程序结束

题解代码

n = int(input())used = 0
deep = 0
path = [0 for _ in range(n)]
def dfs():global usedglobal deepif deep == n:for i in range(n):print(path[i], end=' ')print()returndeep += 1for i in range(n):if used >> i & 1 == 0:path[deep - 1] = i + 1used |= 1 << idfs()used -= 1 << ideep -= 1
dfs()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【rust/bevy】使用points构造ConvexMesh

目录 说在前面问题提出Rapier具体实现参考 说在前面 操作系统&#xff1a;win11rust版本&#xff1a;rustc 1.77.0-nightlybevy版本&#xff1a;0.12 问题提出 在three.js中&#xff0c;可以通过使用ConvexGeometry从给定的三维点集合生成凸包(Convex Hull) import { ConvexGeo…

【51单片机Keil+Proteus8.9】温室盆栽灌溉系统

实验五 实验名称 温室盆栽灌溉系统 软件设计&#xff1a; 1. 定义对应的引脚和端口的别名。 2. 编写延时函数&#xff0c;用于控制程序的执行速度。 3. 编写LCD控制函数&#xff0c;包括发送命令和发送数据两种操作。 4. 编写显示函数&#xff0c;用于在LCD上显示字符串…

无人机打击激光器

激光器的应用非常广泛&#xff0c;涵盖了多个领域。以下是一些主要的激光器应用&#xff1a; 医疗领域&#xff1a;激光器在医疗行业中有着重要应用&#xff0c;比如用于激光手术&#xff08;如眼科手术&#xff09;、皮肤治疗、牙科治疗、肿瘤治疗等。 工业制造&#xff1a;在…

html form中的input有哪些类型?各是做什么处理使用的

在HTML表单中&#xff0c;input元素有多种类型&#xff0c;主要包括以下几种&#xff1a; button&#xff1a;用于定义可点击的按钮。 checkbox&#xff1a;用于定义复选框&#xff0c;用户可以选择多个选项。 file&#xff1a;用于定义文件输入字段&#xff0c;用户可以从本地…

无忧秘书智脑:轻松驾驭“看图说话”功能,职场沟通更高效

在现代职场中&#xff0c;有效的沟通是提升工作效率的关键。然而&#xff0c;有时候我们面对一张图片或图表&#xff0c;却难以用言语准确表达其中的信息。这时&#xff0c;无忧秘书智脑的“看图说话”功能就派上了用场。这篇文章将手把手教你如何使用这一功能&#xff0c;以及…

在使用go语言开发的时候,程序启动后如何获取程序pid

在Go语言中&#xff0c;标准库并没有直接提供获取进程ID&#xff08;PID&#xff09;的函数。通常&#xff0c;你可以使用os包和syscall包来调用底层的操作系统函数来获取PID。 以下是一个获取程序PID的示例代码&#xff1a; package mainimport ("fmt""os&qu…

【MATLAB源码-第119期】基于matlab的GMSK系统1bit差分解调误码率曲线仿真,输出各个节点的波形以及功率谱。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 GMSK&#xff08;高斯最小频移键控&#xff09;是一种数字调制技术&#xff0c;广泛应用于移动通信&#xff0c;例如GSM网络。它是一种连续相位调频制式&#xff0c;通过改变载波的相位来传输数据。GMSK的关键特点是其频谱的…

springboot(ssm仓库管理系统 wms出入库管理系统Java系统

springboot(ssm仓库管理系统 wms出入库管理系统Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#xff09; 数…

Nginx安装配置

目录 准备工作 安装Nginx及相关组件 a、yum安装: b、tar安装: c、也可以yum安装pcre、zlib、openssl&#xff0c;tar安装nginx 启动Nginx 简单配置Nginx Nginx配置静态web服务器 Nginx实现负载均衡(不要使用刷新按钮,在地址栏回车) 1.负载均衡策略 2.配置Nginx的负载均衡与分发…

使用 Zabbix + Grafana 搭建服务器监控系统

搭建 Linux 服务器监控的目的是自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高&#xff0c;最终导致服务器卡死。 所以基于这个痛点&#xff0c;想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习…

TypeScript 函数教程 - 深入理解和使用 TypeScript

🚀 欢迎来到我的专栏!专注于Vue3的实战总结和开发实践分享,让你轻松驾驭Vue3的奇妙世界! 🌈✨在这里,我将为你呈现最新的Vue3技术趋势,分享独家实用教程,并为你解析开发中的难题。让我们一起深入Vue3的魅力,助力你成为Vue大师! 👨‍💻💡不再徘徊,快来关注…

文字的baseLine算法

使用canvas的drawText方法时候&#xff0c;除了要传入画笔和text还需要传入一个x坐标和y坐标。这边的x和y坐标是Baseline的坐标。 public void drawText(NonNull String text, float x, float y, NonNull Paint paint) {super.drawText(text, x, y, paint);} top:是 baseLine到…

mysql B+树索引

数据库索引用于提高查询性能和数据访问效率。索引可以加速数据的查找和筛选&#xff0c;减少查询的时间复杂度。数据库索引有很多类型&#xff0c;这里不展开也不比较&#xff0c;只介绍最常见一种索引结构B树索引。mysql中InnoDB引擎默认使用的就是BTREE索引。 B树数据结构 …

ubuntu设置每天定时关机

ubuntu设置每天定时关机 终端输入命令&#xff1a; sudo crontab -e输入密码&#xff0c;回车。 我这里使用nano作为编辑器&#xff0c;你可以选择vim。 在末尾输入以下命令&#xff1a; 59 23 * * * sudo -u root shutdown now设置&#xff1a;每天23:59分&#xff0c;电脑…

GitHub图床TyporaPicGo相关配置

本文作者&#xff1a; slience_me 文章目录 GitHub图床&Typora&PicGo相关配置1. Github配置2. picGo配置3. Typora配置 GitHub图床&Typora&PicGo相关配置 关于Typora旧版的百度网盘下载路径 链接&#xff1a;https://pan.baidu.com/s/12mq-dMqWnRRoreGo4MTbKg?…

SiamRPN代码研读

SiamRPN 1、概述 SiamRPN 是一种用于视觉目标跟踪的算法。它结合了 Siamese 网络&#xff08;孪生网络&#xff09;和 Region Proposal Network&#xff08;区域提议网络&#xff09;的概念。这种算法的主要目的是在视频序列中准确地跟踪单个目标。下面是它的一些关键特点&…

nestjs之provider的provide取值的几种方式

以下是根据上述每种 provide 取值方式的例子&#xff0c;展示在 NestJS 中如何定义和使用自定义 providers。 1. 字符串 在这个例子中&#xff0c;我们将使用字符串 MY_SERVICE 作为 provider 的标识符。 首先&#xff0c;定义 provider&#xff1a; import { Injectable }…

linux内核源码编译

centos7环境 iso选择 https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 自带qemu&#xff0c;未实测是否可用 选择编译版本2.6 下载地址 遇到的编译错误解决 yum list | grep curses yum install ncurses-devel.x86_64 -y yum i…

python爬取图片(thumbURL和html文件标签分别爬取)

当查看源代码&#xff0c;发现网址在thumbURL之后时&#xff0c;用此代码: # 当查看源代码&#xff0c;发现网址在thumbURL之后时&#xff0c;用此代码:import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121…

SQL Povit函数使用及实例

PIVOT函数常用于数据的行转列&#xff0c;同时也可以用此函数实现类似于Excel中的数据透视表的效果。 PIVOT函数 PIVOT 函数的基本语法如下&#xff1a; -- PIVOT 语法 SELECT <非透视的列>,[第一个透视的列] AS <列名称>,[第二个透视的列] AS <列名称>,.…