备战蓝桥杯---搜索(DFS基础1)

何为深搜?

即不撞南墙不罢休。

话不多说,直接看题:

我们可以把这看成深搜的模板题,下面是AC代码:

#include<bits/stdc++.h>
using namespace std;
int a[15];//存值并输出
int vis[15];
int n=18;
void dfs(int deep){if(deep>n){for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;}else{for(int i=1;i<=n;i++){if(vis[i]==0){a[deep]=i;vis[i]=1;dfs(deep+1);a[deep]=0;vis[i]=0;}}}
}
int main(){dfs(1);
}

加点难度:

输出n个数中选m个的组合

其实,我们只要在原先基础上限定从小到大的顺序并且限定个数即可。

下面是AC代码:

法1.

#include<bits/stdc++.h>
using namespace std;
int a[15];//存值并输出
int vis[15];
int n=5;
int m=3;
void dfs(int deep){if(deep>m){for(int i=1;i<=m;i++) cout<<a[i]<<" ";cout<<endl;}else{for(int i=1;i<=n;i++){if(vis[i]==0&&i>a[deep-1]){a[deep]=i;vis[i]=1;dfs(deep+1);a[deep]=0;vis[i]=0;}}}
}
int main(){dfs(1);
}

法2.

#include<bits/stdc++.h>
using namespace std;
int a[15];//存值并输出
int vis[15];
int n=5;
int m=3;
void dfs(int deep,int last){if(deep>m){for(int i=1;i<=m;i++) cout<<a[i]<<" ";cout<<endl;}else{for(int i=last+1;i<=n;i++){if(vis[i]==0){a[deep]=i;vis[i]=1;dfs(deep+1,i);a[deep]=0;vis[i]=0;}}}
}
int main(){dfs(1,0);
}

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

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

相关文章

浅谈Zookeeper及windows下详细安装步骤

1. Zookeeper介绍 1.1 分布式系统面临的问题 分布式系统是一个硬件或软件组件分布在不同的网络计算机上&#xff0c;彼此之间仅仅通过消息传递进行通信和协调的系统。 面临的问题&#xff1a;系统每个节点之间信息同步及共享 以一个小团队为例,面临的问题 通过网络进行信息…

无人机森林防火解决方案,无人机低空监测系统解决森林防火技术

我国森林资源较为贫乏&#xff0c;森林覆盖率约为13%左右&#xff0c;人均森林占有面积仅为世界平均值的1/6&#xff0c;但森林大火每年都有发生&#xff0c;如何解决森林防火的问题&#xff0c;又成为林业工作的重中之重。 无人机中低空监测系统具有机动快速、使用成本低、维护…

算法学习——华为机考题库2(HJ11 - HJ20)

算法学习——华为机考题库2&#xff08;HJ11 - HJ20&#xff09; HJ11 数字颠倒 描述 输入一个整数&#xff0c;将这个整数以字符串的形式逆序输出 程序不考虑负数的情况&#xff0c;若数字含有0&#xff0c;则逆序形式也含有0&#xff0c;如输入为100&#xff0c;则输出为0…

Github处理clone慢的解决方案

Github设置代理clone依然慢的解决方案 1、前提&#xff1a;科学上网 注意&#xff1a; 必须要有科学上网&#xff01;必须要有科学上网&#xff01;必须要有科学上网&#xff01;重要的事情说三遍&#xff1b; 2、http/https方案&#xff08;git clone时使用http&#xff09…

例34:窗体增加20宽度

建立一个EXE工程&#xff0c;在窗体上放一个标签。输入代码&#xff1a; Sub Form1_WM_LButtonUp(hWndForm As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)Me.WidthMe.Width20Me代指本窗体End SubSub Form1_Label1_WM_LButtonDown(hWndForm As hWnd, MouseFlags A…

数据结构篇-05:哈希表解决字母异位词分组

本文对应力扣高频100 ——49、字母异位词分组 哈希表最大的特点就是它可以把搜索元素的时间复杂度降到O(1)。这一题就是要我们找到 “字母异位词” 并把它们放在一起。 “字母异位词”就是同一个单词中字母的不同组合形式。判断“字母异位词”有两个视角&#xff1a;1、所含字…

大数据信用报告查询费用一般要多少钱?

一些不少朋友在申贷的时候被拒贷之后&#xff0c;得到的原因就是因为大数据不良被拒&#xff0c;这时候很多人都反过来查询自己的大数据信用报告&#xff0c;而查询的价格也是不少朋友都比较关注的&#xff0c;那大数据信用报告查询费用一般要多少钱呢?下面本文就为你介绍一下…

面试150 二进制求和 位运算

Problem: 67. 二进制求和 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 参考 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {public String addBinary(String a, String b){StringBuilder ans new Stri…

C#读取和保存INI文件配置

在C#应用程序中&#xff0c;读取和保存配置文件是常见的任务&#xff0c;而INI文件是一种轻量级的配置文件格式。在以下代码中&#xff0c;我们将探讨如何使用C#创建一个窗体应用程序&#xff0c;并通过读取和保存INI文件配置来实现一些基本的功能。 创建IniHelper类 首先&…

flask基于Python的期货交易模拟系统的django-afl61-vue

期货交易模拟系统是一个便于用户在线查看期货投资、取消投资、风险控制、账户资金、持仓资金等&#xff0c;管理员进行管理的平台。因此本文主要论述了系统开发的过程和实现的功能&#xff0c;结合Web技术来实现的期货交易模拟系统。本系统以软件工程理论为开发基础&#xff0c…

计算机网络实验五

目录 实验五 路由器基本配置 1、实验目的 2、实验设备 3、网络拓扑及IP地址分配 4、实验过程 &#xff08;1&#xff09;路由器设备名称的配置 &#xff08;2&#xff09;路由器每日提示信息配置 &#xff08;3&#xff09;路由器端口的IP地址配置 &#xff08;4&…

freertos 源码分析二 list链表源码

list.c 一、链表初始化 void vListInitialise( List_t * const pxList ) { pxList->pxIndex ( ListItem_t * ) &…