当前位置: 首页 > news >正文

【AcWing】蓝桥杯备赛-深度优先搜索-dfs(2)

目录

写在前面:

题目:94. 递归实现排列型枚举 - AcWing题库

读题:

输入格式:

输出格式:

数据范围:

输入样例:

输出样例:

解题思路:

代码:

AC !!!!!!!!!!

写在最后:


写在前面:

距离蓝桥杯已经不足一个月了,

根据江湖上的传言,

蓝桥杯最喜欢考的是深度优先搜索和动态规划,

所以蓝桥杯也叫暴搜杯、dp杯,

那我备赛当然也就从深度优先搜索,也就是所谓的dfs开始。

题目:94. 递归实现排列型枚举 - AcWing题库

读题:

输入格式:

一个整数 n。

输出格式:

按照从小到大的顺序输出所有方案,每行 1 个。

首先,同一行相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

数据范围:

1 ≤ n ≤ 9

输入样例:

3

输出样例:

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

解题思路:

这道题是深度优先搜索的经典题目,

我们使用深度优先搜索的时候,

第一个要注意的点是,我们要保证,

我们写出的递归结构能够遍历所有情况,

在我们初学搜索的时候,我们一定要画一个递归搜索树观察,

递归非常抽象,画图能很好的帮助我们解题。(以上递归搜索的基本思路,多熟悉总是好的)

接下来是具体思路:

根据题目说的从小到大输出每个方案,

字典序小的数放在前面,

我们画一个递归搜索树观察:

根节点:(以n=3为例)

 向下搜索:

从小到大:

 继续搜索,

使用过得数不再使用:

继续搜索:

 我们需要输出的就是最下面这一排。 

下面是代码实现:

代码:

//养成好习惯,把常用头文件包了
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;//数组大小比题目要求大就行,这题n <= 9
const int N = 10;int n;int st[N];//创建一个数组用来判断位置是否已经有数据了
bool used[N];void dfs(int u)
{//已经递归搜索到底了if(u == n){//打印数组中存放的值for(int i = 0; i < n; i++){printf("%d ", st[i]);}puts("");return;}else{for(int i = 0; i < n; i++){//如果used[i]等于true,证明该位置已经被占用,直接让i++继续循环if(!used[i]){//表示该位置已经占用used[i] = true;//将要打印的值存进数组st[u] = i + 1;//递归往下搜索dfs(u + 1);//位置恢复原样(没有被占用了)used[i] = false;}}}
}int main()
{scanf("%d", &n);dfs(0);return 0;
}

AC !!!!!!!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

相关文章:

【AcWing】蓝桥杯备赛-深度优先搜索-dfs(2)

目录 写在前面&#xff1a; 题目&#xff1a;94. 递归实现排列型枚举 - AcWing题库 读题&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 数据范围&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; 代码&#xff1a; AC &…...

‘conda‘不是内部或外部命令,也不是可运行的程序或批处理文件。

Anaconda环境搭建常见问题 conda不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 解决方案&#xff1a;配置环境变量 1.找到Anaconda Nvaigator单机右键 2.更多 3.打开文件所在位置 4.继续Anaconda Nvaigator单机右键&#xff0c;更多&#xff0c;选择文件…...

HTTP 3.0来了,UDP取代TCP成为基础协议,TCP究竟输在哪里?

TCP 是 Internet 上使用和部署最广泛的协议之一&#xff0c;多年来一直被视为网络基石&#xff0c;随着HTTP/3正式被标准化&#xff0c;QUIC协议成功“上位”&#xff0c;UDP“取代”TCP成为基础协议&#xff0c;TCP究竟“输”在哪里&#xff1f; HTTP/3 采用了谷歌多年探索的基…...

《JavaCV从入门到实战教程合集》介绍和目录

前言 《JavaCV从入门到实战教程合集》是2016年《JavaCV开发实战教程》和2018年《JavaCV入门教程》2022年《JavaCV音视频实战宝典》三合一汇总合集&#xff0c;完整包含JavaCV入门教程》、《JavaCV开发实战教程》系列和《JavaCV音视频实战宝典》系列所有付费内容。 《JavaCV入…...

Form Generator扩展 文本 组件

一、form-generator是什么?✨ ⭐️ 🌟 form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的…...

【C/C++】必知必会知识点大总结

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;C/C知识点 &#x1f4e3;专栏定位&#xff1a;整理一下 C 相关的知识点&#xff0c;供大家学习参考~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;…...

【JavaScript 逆向】百度旋转验证码逆向分析

声明本文章中所有内容仅供学习交流&#xff0c;相关链接做了脱敏处理&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01;案例目标爱企查百度安全验证百度搜索&#xff1a;aHR0cHM6Ly93YXBwYXNzLmJhaWR1LmNvbS9zdGF0aWMvY2FwdGNoYS8以上均做了脱敏处理&#xff0c;B…...

PCL 点云投影到直线(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、投影结果一、算法原理 直线方程有三种表示法:一般式、点向式、参数式。PCL中统一采用的是点向式,直线的点向式方程为: x − x 0 m = y −...

中缀表达式转后缀表示式,及后缀表达式的运算规则

后缀表达式又称为逆波兰表达式 一&#xff0c;中缀表达式如何转后缀表达式 假定给出以下中缀表达式 132*2-1&#xff1b; 要将该表达式转为后缀表达式&#xff0c;我们要按照一定的规则去走&#xff0c;并且用到栈。 先来看规则中缀转后缀的规则&#xff1a; 前提&#x…...

【C++】STL简介

文章目录什么是STLSTL版本 原始版本(HP版本) P.J.版本 RW版本 SGI版本STL六大组件 容器 算法 仿函数 空间配置器 迭代器 配接器STL缺陷什么是STL STL&#xff08;standard template libaray-标准模板库&#xff09;&#xff1a;是C标准库的重要组成部分&#xff0c;不…...

(小甲鱼python)文件永久存储(上)总结 python文件永久存储(创建打开文件、文件对象的各种方法及含义)

一、文件永久存储 如何将数据永久的存放在硬盘上&#xff0c;具体如下。 1.打开文件 定义&#xff1a;往大了讲计算机系统中由操作系统管理的具有名称的存储区域&#xff0c;往小了讲是生活中的PPT、Excel、word三剑客、视频文件、音频文件等。 创建打开文件&#xff1a; open…...

甲酸溶液除钠离子,丙酸溶液除钾离子,医药液体除钾

水是医药行业中用量大、使用 泛的一种原料&#xff0c;它在生产过程中和药剂药品的制备中发挥着极其重要的作用。制药用水的原水通常为自来水或深井水&#xff0c;原水不能直接用作制剂用水或实验用水。因为原水中含有各类盐类和化合物&#xff0c;溶有CO2&#xff0c;还存在大…...

操作系统(2.2)--进程的描述与控制

目录 二、进程的描述 1.进程的定义和特征 1.1进程的定义 1.2进程的特征 2.进程的基本状态及转换 2.1进程的三种基本状态 2.2 三种基本状态的转换 2.3创建状态和中止状态 3.挂起操作和进程状态的转换 3.1 挂起状态的引入 3.2 引入挂起操作后三个进程状态的转换 …...

Python连接es笔记四之创建和删除操作

这一篇笔记介绍一下索引和数据的创建和删除。 其实对于索引来说&#xff0c;如果可以接触到 kibana 的话&#xff0c;可以很方便的在界面进行操作&#xff0c;这里简单介绍一下如何使用代码来操作索引的创建和删除。 索引的创建和删除操作 使用的还是 es 的连接&#xff1a;…...

字符串填充到指定长度

一、需求 在传输一个文件的时候&#xff0c;传输的是二进制数据&#xff0c;整个数据文件的结构为&#xff1a; 文件名称 文件本身 其中文件名称固定占30个byte&#xff0c;存在的情况就是&#xff0c;有的文件名比较长&#xff0c;有的文件名比较短&#xff0c;所有要补足30…...

macOS虚拟机安装全过程(VMware)

作为一名忠实果粉&#xff0c;我最大的愿望就是能够拥有一台Macbook&#xff0c;体验macOS&#xff0c;但是作为学生党&#xff0c;这价钱&#xff0c;贵到离谱啊~~~ 不过&#xff0c;VMware这个神器&#xff0c;可以解决一切问题&#xff1a;既然macOS可以在Macbook上运行&…...

第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)

[蓝桥杯 2022 省 A] 选数异或 题目描述 给定一个长度为 nnn 的数列 A1,A2,⋯,AnA_{1}, A_{2}, \cdots, A_{n}A1​,A2​,⋯,An​ 和一个非负整数 xxx, 给定 mmm 次查询, 每次询问能否从某个区间 [l,r][l, r][l,r] 中选择两个数使得他们的异或等于 xxx 。 输入格式 输入的第一…...

【CTF】CTF竞赛介绍以及刷题网址

CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今&…...

Springboot怎么优雅实现大文件的上传

前言在软件工程里&#xff0c;在处理“大”的时候一直是一个难点和难点&#xff0c;如并发大、数据量大、文件大&#xff0c;对硬件进行升级可以解决一些问题&#xff0c;但这并不最聪明的办法&#xff0c;而对于老板来说&#xff0c;这也不是成本最小的办法。作为开发人员来说…...

2月编程语言排行榜新鲜出炉,谁又摘得桂冠?

近日&#xff0c;TIOBE公布了2023年2月编程语言排行榜&#xff0c;本月各个语言表现如何&#xff1f;谁又摘得桂冠&#xff1f;一起来看看吧&#xff01; TIOBE 2月Top15编程语言&#xff1a; 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题&#xff0c;导致车牌识别率低、逃费率高&#xff0c;传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法&#xff0c;正成为破局关键。该设备安装于车位侧方0.5-0.7米高度&#xff0c;直接规避树枝遮…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...