2023年蓝桥杯省赛——分糖果

目录

题目链接:12.分糖果 - 蓝桥云课 (lanqiao.cn)

思路

DFS解法

实现思路

代码实现

Java

C++

总结


题目链接:12.分糖果 - 蓝桥云课 (lanqiao.cn)

思路

        第一眼是茫然的,第二眼是想枚举的,第三眼是发现要DFS 的,第四眼是不知道怎么开始的,第五眼是崩溃的,第六眼是慢慢摸出来了的,第七眼是报错了的,第八眼是跑不出来的,第九眼是拿下的。

DFS解法

实现思路

        这段代码的核心思想是使用深度优先搜索(DFS)来解决问题。这是一个典型的深度优先搜索问题,就是求解给一群小朋友分糖果的方式数量。

        一共有7个小朋友,每个小朋友都需要至少2颗糖果,并且不能超过5颗。此外,给出的糖果有两味,一种是 9 颗T9(代码里写的t9)味的,另一种是16颗T16 (代码里写的t16)味的。

        首先,我们定义了一个全局变量sum来记录满足条件的分糖果方案数,这样就不用思考那复杂的sum在递归中如何返回了。

        进入主函数后,首先调用DFS函数开始搜索,其中的参数分别是当前的小朋友(从1开始)、然后是剩余的T9味糖果颗数以及T16味糖果的颗数。

        DFS函数搜索所有满足条件的糖果分配方案。如果所有的小朋友都分到了糖果,且没有剩余的糖果,那么意味着找到了一种满足条件的分配方案,sum变量加1。

        注意:这里判断条件的x为什么是x==8呢,因为一共是7个小朋友,从1开始到7刚好是7次,在第七次递归完成之后进入第八次递归这时候x==8,这时候才完成了七次递归,才给七个小朋友分完了糖果,所以应该在这里才判断并结束递归。

        接着,通过两个for循环枚举给当前这个小朋友分配T9味和T16味糖果的所有可能,从0到他们的剩余数量(注意,这里for循环一定要是剩余的数量,不然一直写死是9和16那么是会出现负数的),并且颗数之和的范围在2到5之间。然后对于每一种可能,递归的进行接下来的分配。

        通过这种方式,枚举所有可能的分配方案,并且计算出了满足条件的方案的数量。最后输出这个数量,就是问题的答案。

        真的是很简单的一道DFS题目了,这题比那些二叉树的题还要简单。

代码实现

Java
package src;// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static int sum = 0;public static void main(String[] args) {DFS(1, 9, 16);System.out.println(sum);}public static void DFS(int x, int t9, int t16) {// 如果遍历到最后一个人糖果分完了,那么sum++// 思路中提到了为什么x==8if (x == 8) {// 刚好分完 sum++if (t9 == 0 && t16 == 0) {sum++;}// 结束这次递归return;}// 进行遍历递归// 模拟第一种糖果for (int i = 0; i <= t9; i++) {// 模拟第二种糖果for (int j = 0; j <= t16; j++) {// 一个小朋友糖果数量是 2-5个if (i + j >= 2 && i + j <= 5) {// 给这个小朋友分完了,下一位DFS(x + 1, t9 - i, t16 - j);}}}}
}

C++
#include <iostream>
using namespace std;int sum = 0;void DFS(int x, int t9, int t16){if(x == 8){if(t9 == 0 && t16 == 0){sum++;}return;}for(int i = 0; i <= t9; i++){for(int j = 0; j <= t16; j++){// 判断2-5if(i + j >= 2 && i + j <= 5){DFS(x + 1, t9 - i, t16 - j);}}}
}int main(){// 请在此输入您的代码DFS(1,9,16);cout << sum;return 0;
}

总结

        总结来说就是DFS一定要注意结束条件,在这道题目中还要注意for循环枚举时候的边界问题,一定要将边界设置为剩余的糖果数量而不是习惯性的写成了总体的糖果数量。

ezzzz!!!!!

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

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

相关文章

python的stone音乐播放器的设计与实现flask-django-php-nodejs

该系统利用python语言、MySQL数据库&#xff0c;flask框架&#xff0c;结合目前流行的 B/S架构&#xff0c;将stone音乐播放器的各个方面都集中到数据库中&#xff0c;以便于用户的需要。该系统在确保系统稳定的前提下&#xff0c;能够实现多功能模块的设计和应用。该系统由管理…

ChatGPT无法登录,提示我们检测到可疑的登录行为?如何解决?

OnlyFans 订阅教程移步&#xff1a;【保姆级】2024年最新Onlyfans订阅教程 Midjourney 订阅教程移步&#xff1a; 【一看就会】五分钟完成MidJourney订阅 GPT-4.0 升级教程移步&#xff1a;五分钟开通GPT4.0 如果你需要使用Wildcard开通GPT4、Midjourney或是Onlyfans的话&am…

深度学习基础之《TensorFlow框架(10)—案例:实现线性回归(2)》

增加其他功能 一、增加变量显示 1、目的&#xff1a;在TensorBoard当中观察模型的参数、损失值等变量值的变化 2、收集变量 不同的变量要用不同的方式收集 &#xff08;1&#xff09;tf.summary.scalar(name, tensor) 收集对于损失函数和准确率等单值变量&#xff0c;name为…

macOS下Java应用的打包和安装程序制作

文章目录 macOS应用程序结构Java应用打包JavaAppLauncherjpackage其它相关JDK命令附录JavaAppLauncher源码链接macOS应用程序结构 macOS通常以dmg或pkg作为软件发行包,安装到/Applications下后,结构比较统一。 info.plist里的CFBundleExecutable字段可以指定入口,如果不指定…

Karmada 管理有状态应用 Xline 的早期探索与实践

背景与动机 目前随着云原生技术和云市场的不断成熟&#xff0c;越来越多的 IT 厂商开始投入到跨云多集群的怀抱当中。以下是 flexera 在 2023 年中关于云原生市场对多云多集群管理的接受程度的调查报告&#xff08;http://info.flexera.com&#xff09; 从 flexera 的报告中可…

Flutter Widget:StatefulWidgetStatelessWidgetState

Widget 概念 Widget 将是构建Flutter应用的基石&#xff0c;在Flutter开发中几乎所有的对象都是一个 Widget 。 在Flutter中的widget 不仅表示UI元素&#xff0c;也表示一些功能性的组件&#xff0c;如&#xff1a;手势 、主题Theme 等。而原生开发中的控件通常只是指UI元素。…

Microsoft Edge 中的 Internet Explorer 模式解决ie禁止跳转到edge问题

作为网工&#xff0c;网络中存在很老的设备只能用ie浏览器访问打开&#xff0c;但是win10后打开Internet Explorer 会强制跳转到Edge 浏览器&#xff0c;且有人反馈不会关&#xff0c;为此找到了微软官方的Microsoft Edge 中的 Internet Explorer 模式&#xff0c;可以直接在Mi…

【C语言】自定义类型:结构体

1、结构体类型的声明 struct tag { member - list; //成员 } variable-list; //变量列表 例如描述一本书&#xff1a; struct Book {char name[20];char author[20];float price;char id[13]; }; //分号不能丢 1.1 结构体变量的创建和初始化 #include <stdio.h&…

Orbit 使用指南 08 | 登记注册环境 | Isaac Sim | Omniverse

如是我闻&#xff1a; 在上一个指南中&#xff0c;我们学习了如何创建一个自定义的车杆环境。我们通过导入环境类及其配置类来手动创建了一个环境实例 # create environment configurationenv_cfg CartpoleEnvCfg()env_cfg.scene.num_envs args_cli.num_envs# setup RL envir…

Llama 2 模型

非常清楚&#xff01;&#xff01;&#xff01;Llama 2详解 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/649756898?utm_campaignshareopn&utm_mediumsocial&utm_psn1754103877518098432&utm_sourcewechat_session一些补充理解&#xff1a; 序列化&#xff…

活用 C语言之union的精妙之用

一、union的基本定义 Union的中文叫法又被称为共用体、联合或者联合体。它的定义方式与结构体相同,但意义却与结构体完全不同。下面是union的定义格式: union 共用体名 {成员列表}共用体变量名;它与结构体的定义方式相同,但区别在于共用体中的成员的起始地址都是相同的,…

备考ICA----Istio实验7---故障注入 Fault Injection 实验

备考ICA----Istio实验7—故障注入 Fault Injection 实验 Istio 的故障注入用于模拟应用程序中的故障现象&#xff0c;以测试应用程序的故障恢复能力。故障注入有两种: 1.delay延迟注入 2.abort中止注入 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/…

Flask 与小程序 的图片数据交互 过程及探讨研究学习

今天不知道怎么的&#xff0c;之前拿编程浪子地作品抄过来粘上用好好的&#xff0c;昨天开始照片突的就不显示了。 今天不妨再耐味地细细探究一下微信小程序wxml 和flask服务器端是怎么jpg图片数据交互的。 mina/pages/food/index.wxml <!--index.wxml--> <!--1px …

学习添加03(优惠卷)

1.优化卷模块的介绍 整体流程&#xff1a; 优惠卷表设计&#xff1a; 优惠卷范围表设计&#xff1a; 兑换码表设计&#xff1a;

Python核心编程 --- 高级数据类型

Python核心编程 — 高级数据类型 字符串 列表 元组 字典 1.序列 序列&#xff1a;一组按顺序排列的数据集合。 在Python中存在三种内置的序列类型&#xff1a;字符串、列表、元组 优点&#xff1a;可支持索引和切片操作 特点&#xff1a;第一个正索引为0&#xff0c;指…

【vue3.0】实现导出的PDF文件内容是红头文件格式

效果图: 编写文件里面的主要内容 <main><div id"report-box"><p>线索描述</p><p class"label"><span>线索发现时间:</span> <span>{{ detailInfoVal?.problem.createdDate }}</span></p><…

腾讯在GDC 2024展示GiiNEX AI游戏引擎现已投入《元梦之星》中开发使用,展示强大AIGC能力

在近日举行的GDC 2024游戏开发者大会上&#xff0c;腾讯揭开了其AI Lab团队精心打造的GiiNEX AI游戏引擎的神秘面纱。这款引擎依托先进的生成式AI和决策AI技术&#xff0c;为游戏行业带来了革命性的变革。 相关阅读&#xff1a;腾讯游戏出品&#xff01;腾讯研效AIGC&#xff…

hyperf 二十八 修改器 一

教程&#xff1a;Hyperf 一 修改器和访问器 根据教程&#xff0c;可设置相关函数,如set属性名Attribute()、get属性名Attribute()&#xff0c;设置和获取属性。这在thinkphp中也常见。 修改器&#xff1a;set属性名Attribute()&#xff1b;访问器&#xff1a;get属性名Attri…

lora-scripts 训练IP形象

CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区&#xff0c;能复现才是好算法https://www.codewithgpu.com/i/Akegarasu/lora-scripts/lora-trainstable-diffusion打造自己的lora模型&#xff08;使用lora-scripts&#xff09;-CSDN博客文章浏览阅读1.1k次…

什么是RabbitMQ的死信队列

RabbitMQ的死信队列&#xff08;Dead Letter Queue&#xff0c;简称DLQ&#xff09;是一种用于处理消息失败或无法路由的消息的机制。它允许将无法被正常消费的消息重新路由到另一个队列&#xff0c;以便稍后进行进一步处理、分析或排查问题。 当消息对立里面的消息出现以下几…