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

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(4)

目录

写在前面:

题目:P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目描述:

输入格式:

输出格式:

输入样例:

输出样例:

解题思路:

代码:

AC !!!!!!!!!!

写在最后:


写在前面:

怎么样才能学好一个算法?

我个人认为,系统性的刷题尤为重要,

所以,为了学好深度优先搜索,为了用好暴搜应对蓝桥杯,

事不宜迟,我们即刻开始刷题!

题目:P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目描述:

输入格式:

一个整数 n ( 1 ≤ n ≤ 24 )。

输出格式:

一个整数,能拼成的不同等式的数目。

输入样例:

1. 

14

2. 

18

输出样例:

1. 

2

2. 

9

解题思路:

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

第一个要注意的点是搜索的顺序,

因为我们要保证,

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

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

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

 接下来是具体思路

根据题意可知:

 这样,我们可以把它想象成,

在ABC这三个位置上填数字,

满足A+B=C以及A+B+C的火柴数等于n-4

那我们根据这个思路来画递归搜索数:

根节点:

往第一个位置填数字:

 继续往下递归搜索,

我们发现其实这是一个指数型的枚举:

 我们继续往下搜索:

以此类推,我们能够搜索出所有的情况,

然后再根据题意进行判断和剪枝:

剪枝:

如果A或者A+B的火柴数已经大于题目要求的n

就直接return,也就是剪枝。

接下来看代码:

代码:

//包常用头文件
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;//题目n最大是24,如果不确定该开多大,那就开大点
const int N = 10010;int n;//计数最后输出
int res = 0;int st[N];//各个数字的火柴数
int match[10010] = { 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 };void dfs(int u, int sum)
{//如果A或者A+B的火柴数已经大于题目要求的n,剪枝if(sum > n)return;if (u > 3){//满足A+B=C以及A+B+C的火柴数等于n-4if (st[1] + st[2] == st[3] && sum == n - 4){res++;}return;}//搜索for (int i = 0; i < 1000; i++){st[u] = i;dfs(u + 1, sum + match[i]);st[u] = 0;}
}int main()
{scanf("%d", &n);//递推取得每个数字的火柴数for(int i = 10; i < 1000; i++){match[i] = match[i / 10] + match[i % 10];}dfs(1, 0);printf("%d", res);return 0;
}

AC !!!!!!!!!!

写在最后:

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

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

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

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

相关文章:

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(4)

目录 写在前面&#xff1a; 题目&#xff1a;P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; …...

在Win10以及SDK为33的环境下——小米便签项目的搭建

文章目录0. 我的操作系统和开发环境1. 相关文件下载&#xff1a;2. import project&#xff1a;2.1 用import project导入项目3. make project&#xff1a;3.1 AS中的命令行乱码问题:3.2 依赖库缺失问题:3.3 关于targetSdkVersion3.4 关于Missing URL3.5 关于Manifest merger f…...

FPGA纯verilog实现RIFFA的PCIE通信,提供工程源码和软件驱动

目录1、前言2、RIFFA简介RIFFA概述RIFFA架构RIFFA驱动3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、前言 PCIE是目前速率很高的外部板卡与CPU通信的方案之一&#xff0c;广泛应用于电脑主板与外部板卡的通讯&#xff0c;PCIE协议极其复杂&…...

Linux网络配置

文章目录一、Linux网络配置原理图二、查看网络IP和网关ping测试主机之间网络连通性三、linux网络环境配置第一种方法(自动获取)第二种方法(指定ip)四、设置主机名和hosts映射设置主机名设置hosts映射五、主机名解析过程分析(Hosts、DNS)Hosts是什么DNS一、Linux网络配置原理图 …...

【Java学习笔记】多线程与线程池

多线程与线程池一、多线程安全与应用1、程序、进程与线程的关系2、创建多线程的三种方式&#xff08;1&#xff09;继承Thread类创建线程【不推荐】&#xff08;2&#xff09;实现Runnable接口创建线程&#xff08;3&#xff09;Callable接口创建线程3、线程的生命周期4、初识线…...

尺取法

尺取法是一种线性的高效率算法。记 (L, R ) 为一个序列内以L为起点的最短合法区间, 如果R随L的增大而增大的,就可以使用尺取法。具体的做法是不断的枚举 L,同时求出R。 因为 R 随 L增大而增大,所以总时间复杂度为 O(n) 指针i、j的两种方向: 反向扫描:i、j方向相反,i从头…...

20.有效的括号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括…...

使用QT C++编写一个带有菜单和工具条的文本编辑器

您好&#xff0c;这是必应。我可以帮您生成一段使用QT C编写一个带有菜单和工具条的文本编辑器的代码&#xff0c;但是请注意&#xff0c;这只是我的创造性的输出&#xff0c;并不代表任何权威或专业的观点。如果您想要了解更多的相关知识&#xff0c;请自行搜索或咨询专家。以…...

文法和语言的基本知识

一、什么形式化的方法用一套带有严格规定的符号体系来描述问题的方法二、什么是非形式化的方法对程序设计语言的描述从语法、语义和语用三个方面因素来考虑所谓语法是对语言结构定义所谓语义是描述了语言的含义所谓语用则是从使用的角度去描述语言三、符号串字母表和符号串字母…...

学习其他人的代码,成为更好的程序员

学习其他人的代码&#xff0c;成为更好的程序员1. 广泛阅读2. 分析代码3. 记笔记4. 实验5. 分享你的发现6. 结论参考如何成为一名更好的Python程序员??? 学习编码是一个持续的过程&#xff0c;需要实践、实验和向他人学习的意愿。提高编码技能的最佳方法之一是学习他人的代…...

新星计划-JAVA学习路线及书籍推荐

CSDN的各位友友们你们好,今天千泽为大家带来的是JAVA学习路线及其经典书籍推荐,接下来让我们一起了解一下JAVA的学习路线吧!如果对您有帮助的话希望能够得到您的支持和关注,我会持续更新的! 目录 1.JAVASE及其书籍推荐 2.初级数据结构与算法及其书籍推荐 3.MySQL及其书籍推荐…...

【大数据】Hive系列之- Hive-DML 数据操作

Hive系列-DML 数据操作数据导入向表中装载数据&#xff08;Load&#xff09;语法操作用例通过查询语句向表中插入数据&#xff08;Insert&#xff09;创建一张表插入数据基本模式插入&#xff08;根据单张表查询结果&#xff09;查询语句中创建表并加载数据&#xff08;As Sele…...

day2 —— 判断字符串中的字符是否唯一

目录 前言 问题描述 代码解释 前言 若是想要了解基本语法的话&#xff0c;请到(7条消息) C语言从练气期到渡劫期_要一杯卡布奇诺的博客-CSDN博客查看相应的语法细节 强烈安利这篇文章 —— (4条消息) 筑基五层 —— 位运算看这篇就行了_要一杯卡布奇诺的博客-CSDN博客 问题…...

176万,GPT-4发布了,如何查看OpenAI的下载量?

大家好&#xff0c;这里是程序员晚枫。 昨天新一代GPT4发布了&#xff0c;今年GPT不断给大家带来惊喜。 在OpenAI的官网&#xff0c;也公开了GPT的Python调用第三方库&#xff1a;openai。 今天我们就来看看&#xff0c;这个Python智能接口~ 1、代码说明 开发过Python项目…...

蓝蓝算法题(一)

讲在前面&#xff1a;1.本人正在逐步学习C&#xff0c;代码中难免有C和C&#xff08;向下兼容&#xff09;混用情况。2.算法题目来自蓝蓝知识星球&#xff0c;没有对应的判决系统&#xff0c;运行到判决系统可以会有部分案例不能通过。 求素数 暴力求解&#xff08;1 - n试探…...

Python截图自动化工具

1、展示部分源码(写的比较乱&#xff0c;哈哈) 2、功能展示 1&#xff09;首页 2&#xff09;按钮截图(用于自动翻页) 3&#xff09;保存位置按钮(选择图片保存的位置) 4&#xff09;重复次数&#xff0c;就是要截取多少次 5&#xff09;定位截屏(截取的内容&#x…...

网络作业2【计算机网络】

网络作业2【计算机网络】前言推荐网络作业2一. 单选题&#xff08;共3题&#xff0c;19.8分&#xff09;二. 多选题&#xff08;共1题&#xff0c;6.6分&#xff09;三. 填空题&#xff08;共8题&#xff0c;52.8分&#xff09;四. 判断题&#xff08;共3题&#xff0c;20.8分&…...

如何给网页加速,如何加速网页速度?

如何加速网页速度&#xff1f;提高移动网页加载的速度&#xff0c;可以从服务器的优化、网页的容量、请求响应等方面入手&#xff0c;这些方面优化后必然可以提高加载速度。1、服务器硬件软件配置要好&#xff0c;网络、读写响应等要做好优化。2、可以开启gzip压缩技术&#xf…...

linux kernel 5.0 inline hook框架

github:https://github.com/WeiJiLab/kernel-hook-framework 一、项目介绍 Usually we want to hack a kernel function, to insert customized code before or after a certain kernel function been called, or to totally replace a function with new one. How can we…...

【Java版oj】day12二进制插入、查找组成一个偶数最接近的两个素数

目录 一、二进制插入 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff09;完整代码 二、查找组成一个偶数最接近的两个素数 &#xff08;1&#xff09;原题再现 &#xff08;2&#xff09;问题分析 &#xff08;3&#xff0…...

《C语言学习:判断语句if-else》5

写在前面&#xff1a;本笔记为个人学习各平台C语言系列课程所作&#xff0c;仅供交流学习&#xff0c;不得作他用。1. if基本用法if(/*条件*/){/*做法*/ } //如果满足条件&#xff0c;则做大括号中的事情圆括号中是条件&#xff0c;或者说一个表达式。当它是0&#xff0c;则不执…...

新手避坑指南:PX4飞控连接TFmini、LIDAR Lite V3等定高雷达的完整接线与参数配置(QGC实操)

PX4飞控与定高雷达实战&#xff1a;从接线到参数配置的避坑指南 刚拿到PX4飞控和一堆传感器的新手们&#xff0c;面对密密麻麻的接口和参数设置&#xff0c;是不是有种无从下手的感觉&#xff1f;特别是当你需要连接定高雷达时&#xff0c;不同品牌&#xff08;北醒TFmini、LID…...

Amlogic S9XXX Armbian刷机完全指南:从入门到进阶的5个关键问题

Amlogic S9XXX Armbian刷机完全指南&#xff1a;从入门到进阶的5个关键问题 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l,…...

【人生底稿 03】2012 末日传说与我踏入 IT 的起点

接上《人生底稿》系列&#xff0c;本篇记录一段真实的成长碎片&#xff0c;不严格按时间线更新&#xff0c;只为记下一个农村少年&#xff0c;一步步走向社会的真实轨迹。 在参加某科技公司 ITMS 培训之前&#xff0c;我先经历了一轮面试 —— 上机题 技术面&#xff0c;分数…...

四管升降压电路实战解析:从拓扑原理到模式切换(附波形对比)

1. 四管升降压电路为何成为工程师的"瑞士军刀" 第一次接触四管升降压电路时&#xff0c;我正被一个光伏储能项目折磨得焦头烂额。太阳能板的输出电压在8V-18V剧烈波动&#xff0c;而系统需要稳定的12V供电。传统方案要用两个独立电路串联&#xff0c;直到老工程师扔给…...

[特殊字符] Nano-Banana效果分享:电动工具齿轮箱高精度啮合关系可视化拆解图

Nano-Banana效果分享&#xff1a;电动工具齿轮箱高精度啮合关系可视化拆解图 你有没有想过&#xff0c;一个复杂的电动工具内部到底长什么样&#xff1f;那些精密的齿轮是如何咬合在一起&#xff0c;将电机的旋转变成强大动力的&#xff1f;传统的产品说明书往往只有一张模糊的…...

Vivado 时序约束文件 (.xdc) 管理与维护实战指南:从单文件到团队协作

Vivado 时序约束文件 (.xdc) 管理与维护实战指南&#xff1a;从单文件到团队协作 在FPGA设计流程中&#xff0c;时序约束文件&#xff08;.xdc&#xff09;如同交通信号灯&#xff0c;为设计指明方向与规则。随着项目规模扩大和团队协作需求增加&#xff0c;如何高效管理这些约…...

3DGS训练完模型怎么可视化?手把手教你用官方Viewer在Windows上查看结果

3DGS训练完模型怎么可视化&#xff1f;手把手教你用官方Viewer在Windows上查看结果 当你花费数小时甚至数天时间在Linux服务器上完成3D高斯泼溅(3DGS)模型的训练后&#xff0c;最令人兴奋的时刻莫过于亲眼看到自己的训练成果。本文将详细介绍如何将训练好的模型从Linux服务器迁…...

SAP BAPI实战指南:核心模块高频接口速查与应用解析

1. SAP BAPI入门&#xff1a;为什么开发者需要这份速查手册 第一次接触SAP BAPI时&#xff0c;我盯着满屏的接口文档差点崩溃——光是FICO模块就有二十多个常用BAPI&#xff0c;每个接口的参数列表长得像毕业论文。后来在项目上踩过几次坑才明白&#xff0c;BAPI的难点不在于技…...

Kandinsky-5.0-I2V-Lite-5s多场景应用:社交头像动效、PPT动态配图、电子相册生成

Kandinsky-5.0-I2V-Lite-5s多场景应用&#xff1a;社交头像动效、PPT动态配图、电子相册生成 1. 认识Kandinsky-5.0-I2V-Lite-5s Kandinsky-5.0-I2V-Lite-5s是一款轻量级图生视频模型&#xff0c;它能将静态图片转化为动态视频。你只需要上传一张首帧图片&#xff0c;再补充一…...