摘要:本文主要向大家介绍了C/C++知识点之C++经典题——三个水杯,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了C/C++知识点之C++经典题——三个水杯,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
最近复习了一下宽搜,感觉其实搜索是一种精神,而这种精神就是不怕困难走到底,掌握这种精髓能很好地帮助您解决一些需要举例子的问题。
今天找了一道题,比较值得学习,希望通过这道题了解宽搜的套路。
顺便附上题目:
三个水杯
时间限制:1000 ms | 内存限制:65535 KB难度:4 描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 输入第一行一个整数N(0<N<50)表示n组测试数据接下来每组测试数据有两行,第一行给出三个整数v1 v2="" v3="" v1="">V2>V3 V1<100 v3="">0)表示三个水杯的体积。第二行给出三个整数E1 E2 E3 (体积小于等于相应水杯体积)表示我们需要的最终状态输出每行输出相应测试数据最少的倒水次数。如果达不到目标状态输出-1样例输入26 3 14 1 19 3 27 1 1样例输出3-1
附上AC代码详解,可能看起来有点繁琐,其实并没有你想象中那么难,要理解,三个杯子互相倒水有6种情况!相信您能理解!#include
int bfs(node b){ queue
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号