【BFS】母亲的牛奶

农夫约翰有三个容量分别为 A,B,C升的挤奶桶。最开始桶 A 和桶 B 都是空的,而桶 C里装满了牛奶。有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。这一过程中间不能有任何停顿,并且不会有任何牛奶的浪费。

请你编写一个程序判断,当 A 桶是空的时候,C 桶中可能包含多少升牛奶,找出所有的可能情况。

输入格式

共一行,包含三个整数 A,B,C

输出格式

共一行,包含若干个整数,表示 C桶中牛奶存量的所有可能情况,请将这些数字按升序排列。

数据范围

1≤A,B,C≤20

输入样例1:
8 9 10
输出样例1:
1 2 8 9 10
输入样例2:
2 5 10
输出样例2:
5 6 7 8 9 10
#include<iostream>
#include<algorithm>
#define N 21
#define M N*N*N
using namespace std;int A,B,C;struct Node{int a,b,c;
}q[M];
bool st[N][N][N];//标记有无被遍历
void bfs(){int hh=0,tt=0;q[0]={0,0,C};//刚开始只有c桶有st[0][0][C]=true;int Ws[3]={A,B,C};//表示总容量while(hh<=tt){auto t=q[hh++];for(int i=0;i<3;i++){for(int j=0;j<3;j++){if(i!=j){//从i桶往j桶倒int w[3]={t.a,t.b,t.c};//现在每个容器已有的量int r=min(w[i],Ws[j]-w[j]);//i桶的全部和j桶所剩容量的最小值w[i]-=r,w[j]+=r;int a=w[0],b=w[1],c=w[2];if(!st[a][b][c]){st[a][b][c]=true;q[++tt]={a,b,c};}}}}}}
int main(){cin>>A>>B>>C;bfs();for(int c=0;c<=C;c++){for(int b=0;b<=B;b++){if(st[0][b][c]){//可以枚举到cout<<c<<" ";break;}}}return 0;
}

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

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

相关文章

VisionOS应用开发需要哪些工具

标题: VisionOS应用开发需要哪些工具 标签: [VisionOS, 空间计算] 分类: [VisionOS, 开发工具] 说下开发visionOS空间应用需要哪些准备&#xff0c;这里我找了下&#xff0c;列出来给大家。 xcode 15.22d: SwiftUI3d: RealityKit/Unity 3D实体空间: ARKitIntel Mac上可以运行X…

mysql8.0下载安装详细步骤 图文教程

下载mysql 保证电脑上之前没有安装过mysql&#xff0c;或者已经卸载完毕。 mysqk8.0 下载地址 解压 新建一个专门存放mysql文件夹&#xff0c;将下载的压缩包解压到这个文件夹里面。 配置 添加一个data文件夹&#xff0c;用来存放数据 新建一个my.txt文本&#xff0c;复制…

C++语言·入门

现在我们讲完了数据结构初阶部分的内容&#xff0c;数据结构剩下的内容会在C语言讲解的差不多的时候加入。 1. 什么是C C语言是结构化模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度抽象和建模时&#xff0c…

机器视觉学习(十一)—— 最小矩形和圆形区域、近似轮廓、凸包

目录 一、最小矩形区域与最小圆形区域 1.1 cv2.minAreaRect()函数 1.2 cv2.minEnclosingCircle()函数 1.3 最小矩形区域与最小圆形区域示例 二、 显示近似轮廓 2.1 cv2.approxPolyDP()函数 2.2 显示近似轮廓示例代码 2.2.1 简约版 2.2.2 进阶版 三、 显示凸包 3.…

软件测试-用例篇

目录 1 测试用例的基本要素2 测试用例给我们带来的好处3 测试用例的设计方法3.1 基于需求进行测试用例的设计3.1.1 功能需求测试分析3.1.2 非功能需求测试分析 4 具体的设计方法4.1 等价类4.2 边界值4.3 错误猜测法4.4 场景设计法4.5 因果图4.5.1 因果图需要掌握的基本知识4.5.…

用一个程序解决SQLite常见的各项操作(实用篇)

文章说明&#xff1a; 本篇文章是在之前的一篇文章SQLite3进行数据库各项常用操作基础上写的&#xff0c;将SQLite涉及到的常用的几种操作&#xff0c;以函数的形式处理成相互调用的形式。 因为之前的文章对基础操作已经解释过了&#xff0c;所以这里直接放置可执行代码和结果…

kali常用命令功能简介记录

Kali Linux中常用的命令&#xff1a; 1. apt-get update&#xff1a;更新软件源列表。 2. apt-get upgrade&#xff1a;升级系统中已安装的软件包。 3. apt-get install [软件包]&#xff1a;安装指定的软件包。 4. apt-get remove [软件包]&#xff1a;卸载指定的软件包。 5.…

上海开放大学2024春《机械工程导论》简答题参考答案

答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 答案&#xff1a;更多答案&#xff0c;请关注【电大搜题】微信公众号 机械工程导论 - 简答题 一共五个题&#xff1a; 1. 材料力学…

301.【华为OD机试】最小传输时延I(Dijkstra 算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…

基于YOLOv8的绝缘子检测系统

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的绝缘子小目标检测&#xff0c;阐述了整个数据制作和训练可视化过程 1.YOLOv8介绍 Ultralytics YOLOv8是Ultralytics公司开发的YOLO目标检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的&a…

kali Linux上安装docker过程记录

安装情况&#xff1a; 直接安装提示错误&#xff01;&#xff01;&#xff01; 安装程序命令&#xff1a; apt install -y docker.io 安装结果提示安装失败&#xff01;&#xff01;&#xff01;看别人安装直接成功到我这怎么失败&#xff01;&#xff01;&#xff01;找原因…

引用,内联函数,auto函数,指针nullptr

一&#xff1a;引用 1.1 该文章的引用是对上一篇引用的进行补充和完善 按理来说&#xff0c;double可以隐式转换为int&#xff0c;那起别名的时候为什么不可以类型转换呢&#xff1f; 那是因为&#xff0c;在类型转换的时候&#xff0c;会创建一个临时变量&#xff0c;让后再…

如何提高小红书笔记的收录率?

在小红书平台上&#xff0c;笔记的收录率是衡量一篇笔记是否受欢迎和有价值的重要因素。为了提高笔记的收录率&#xff0c;有几个关键点需要注意&#xff1a; 1.内容不涉及广告 在发布笔记前要先确保笔记内容不包含任何形式的广告或推广信息。小红书平台对于广告性质的内容有…

资治通鉴读后感之【顺应人性、联盟、创业切入点、领袖魅力】

目录 顺应人性&#xff1a; 联盟&#xff1a; 防蚁穴&#xff1a; 创业者切入点&#xff1a; 组建团队&#xff1a; 顺应人性&#xff1a; 不着急、不害怕、不要脸的精神 兴衰、人性、道德、权谋 优秀的人才&#xff1a;愿和你交流的时候&#xff0c;多交流&#xff0c;…

【React】在React中如何渲染空格

前言 代码中冒号是英文冒号&#xff0c;以便显示空格是否渲染 方式一&#xff1a;使用花括号 function Message () {return (<p>姓名:{" "}张三</p>) }方式二&#xff1a;使用Html实体 function Message () {return (<p>姓名: 张三</p>)…

题目:练习函数调用

题目&#xff1a;练习函数调用 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly…

Day41 动态规划 part03

Day41 动态规划 part03 343. 整数拆分 我的思路&#xff1a; 自己写不了一点… 拿代码debug&#xff0c;dp数组&#xff0c;表示正整数n的最大拆分乘积&#xff0c;当n 2的时候才能拆分&#xff08;2 1 1&#xff09;&#xff0c;且dp[2] 1 我们用 i 遍历&#xff0c;记录…

24年大一训练一(东北林业大学)

前言&#xff1a; 周五晚上的训练赛&#xff0c;以后应该每两周都会有一次。 正文&#xff1a; Problem:A矩阵翻转&#xff1a; #include<bits/stdc.h> using namespace std; int a[55][55]; int main(){int n,m;while(cin>>n>>m){for(int i1;i<n;i){for…

11.最多约数

问题描述 对于以下这些数(6 行&#xff0c;每行6个&#xff0c;共36个)&#xff0c;请问约数数最多的是哪个?(如果有多个&#xff0c;请回答出现最早的那个) 393353 901440 123481 850930 423154 240461 373746 232926 396677 486579 744860 468782 941389 777714 992588 3432…

Mysql数据库:故障分析与配置优化

目录 前言 一、Mysql逻辑架构图 二、Mysql单实例常见故障 1、无法通过套接字连接到本地MySQL服务器 2、用户rootlocalhost访问被拒绝 3、远程连接数据库时连接很慢 4、无法打开以MYI结尾的索引文件 5、超出最大连接错误数量限制 6、连接过多 7、配置文件/etc/my.cnf权…