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

【蓝桥杯每日一题】分糖果——DFS

分糖果

蓝桥杯每日一题 2024-12-24 分糖果 DFS

题目描述

两种糖果分别有 9 个和 16 个,要全部分给 7 个小朋友,每个小朋友得到的糖果总数最少为 2 个最多为 5 个,问有多少种不同的分法。糖果必须全部分完。

只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案就算作不同的方案。

解题思路

虽然这是一道填空题,但是还是要通过代码来实现,结果太大了。

这是一个分配问题,通过不同的分配个数来找出不同的分发,特别注意的是,这道题中有两种糖果,而且在分的时候只要糖果不完全相同就行;也就是不能将这两种糖果融为一种来算。

由于糖果种类不同,为了更好地限定递归次数,应该使用人数来判断是否需要结束递归,那么递归的时候就要枚举糖果的取法了;由于是两种糖果,我们要使用双重循环来枚举每一种糖果,然后递归求取每一个人可获得的糖果数。

Accepted
#include <iostream>
using namespace std;
int res;
void dfs(int u,int tmp1,int tmp2) {if(u > 7) {if(!tmp1 && !tmp2) res++;return ;}for(int i = 0;i <= tmp1;i++) {      // 枚举第一种糖果for(int j = 0;j <= tmp2;j++) {  // 枚举第二种糖果if(i+j >= 2 && i+j <= 5) {  // 当前这个人的糖果分配可以满足条件dfs(u+1,tmp1-i,tmp2-j); // 接着递归下一个人}}}
}
int main () {dfs(1,9,16);cout<<res<<endl;return 0;
}
思考

刚开始写的时候当成一种糖果计算了,然而这是不对的;这个题的解题关键就是在枚举糖果的取法,并且是分别枚举两种糖果的。

http://www.lryc.cn/news/509179.html

相关文章:

  • information_schema是什么?
  • 案例分析-THC7984设计问题报告
  • HarmonyOS NEXT 技术实践-基于基础视觉服务的多目标识别
  • 【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割
  • 使用 docker ps 查不到刚刚创建的容器
  • vue2+element 前端表格下载
  • MySQL使用LOAD DATA INFILE方式导入文本文件
  • 【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理
  • SpringBootWeb 篇-深入了解 SpringBoot + Vue 的前后端分离项目部署上线与 Nginx 配置文件结构
  • 优化程序中的数据:从代数到向量解
  • 【Web】2024“国城杯”网络安全挑战大赛决赛题解(全)
  • 基于ceres优化的3d激光雷达开源算法
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Vision Kit(2)
  • 【LeetCode】726、原子的数量
  • VMware虚拟机三种网络工作模式
  • 14-zookeeper环境搭建
  • [搜广推]王树森推荐系统笔记——矩阵补充最近邻查找
  • Unity3D * 粒子特效 * Particle System
  • 【基础篇】1. JasperSoft Studio编辑器与报表属性介绍
  • 数据结构:算法篇:快速排序;直接插入排序
  • WebAPI编程(第一天,第二天)
  • 查看MySQL存储引擎方法,表操作
  • 【Python教程】Python3基础篇之Number(数字)
  • 基于openEuler22.09部署OpenStack Yoga云平台(一)
  • I.MX6U 启动方式详解
  • 施耐德变频器ATV320系列技术优势:创新与安全并重
  • 系统思考—全局思维
  • Windows如何切换用户访问局域网共享文件夹,如何切换网上邻居的账户
  • 如何在谷歌浏览器中启用语音搜索
  • HarmonyOS NEXT 技术实践-基于基础视觉服务实现骨骼点识别