2 zuoakang zuoakang 于 2016.04.25 16:19 提问

倒水算法用c++实现。不知道怎么写。
c++

1.指定水杯个数;
2.指定各个水杯的容量;
3.指定各水杯的当前水量;
4.倒水时遵循两个原则:a)将杯子倒满;b)将有水的杯子中的水全部倒干净。
5.最后达到指定的水平。

如有4个水杯,每个水杯的容量分别为21、11、8和5,目前装水分别为21、0、0和0,最终要求装水7、7、7和0.

2个回答

NK_test
NK_test   Rxr 2016.04.25 23:25
已采纳

使用深度优先算法进行暴力匹配。每次扩展以上两种操作,继续递归,直至目的结果出现后return。
手机码字,不写程序了,你可以直接搜一下类似的题目,例如 dfs 倒水问题

zuoakang
zuoakang 能帮个忙吗?实在不知道怎么把数据用图存储起来,写的好难过。能写下吗?有劳啦
大约 2 年之前 回复
xianfajushi
xianfajushi   2016.04.25 18:39

也就是说把总容量除个数,是否为整数,比较是否满足最小容量,否则重新计算?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
倒水问题C++实现
量水问题方案 [量水问题]: 有三个分别装有a升水,b升水,c升水的量筒,其中a,b互质,c>b>a>0,现在c筒装满水,问能否在c筒中量出d升水(c>d>0)。若可以,给出方案。 解答: 所谓模数方程,就是模线性方程,即形如 ax ≡ b (mod c) 形式的方程,其中a,b,c是常数,x是自变量,这个方程表示ax mod c = b  mod c,即ax和b模c同余。 这个量水
“倒水”算法代码实现
用VC控制台实现的倒水程序 “倒水”算法代码实现
经典问题----倒水(详细解析)
倒水   有两个容器,容积分别为A升和B升,有无限多的水,现在需要C升水。 我们还有一个足够大的水缸,足够容纳C升水。起初它是空的,我们只能往水缸里倒入水,而不能倒出。 可以进行的操作是: 把一个容器灌满; 把一个容器清空(容器里剩余的水全部倒掉,或者倒入水缸); 用一个容器的水倒入另外一个容器,直到倒出水的容器空或者倒入水的容器满。     问是否能够通过有限次操作,使得水缸最后恰好有C升水。
倒水问题(三个水杯)
设大,中,小3个杯子的容量分别为a,b,c,最初只有大杯子装满水,其他两个杯子为空。最少需要多少步才能让某一个杯子中的水有x升呢?你需要打印出每步操作后各个杯子中的水量 /* 因为给出条件后3个杯子中水的总量同时确定,所以可以减少用于记录的数组维数。使用递归的方法遍历可能经过的所有路径并记录可到达的最短步数 */ #include #include using namespace std; s
倒水问题(算法挑战)
我想我们都做过这么一道题: 有两个容器,容积分别为A升和B升,有无限多的水,现在需要C升水。 我们还有一个足够大的水缸,足够容纳C升水。起初它是空的,我们只能往水缸里倒入水,而不能倒出。 可以进行的操作是: 把一个容器灌满; 把一个容器清空(容器里剩余的水全部倒掉,或者倒入水缸); 用一个容器的水倒入另外一个容器,直到倒出水的容器空或者倒入水的容器满。 问是否能够通过有限次操作,使得
C++解决 倒水算法
题目:倒水算法 1.指定水杯个数; 2.指定各个水杯的容量; 3.指定各水杯的当前水量; 4.倒水时遵循两个原则:a)将杯子倒满;b)将有水的杯子中的水全部倒干净。 5.最后达到指定的水平。 如有4个水杯,每个水杯的容量分别为21、11、8和5,目前装水分别为21、0、0和0,最终要求装水7、7、7和0. 本人初学C++时写的算法 运用的是广度优先遍历的方法 代码
算法实战6:倒水问题
题目详情 有两个容器,容积分别为A升和B升,有无限多的水,现在需要C升水。 我们还有一个足够大的水缸,足够容纳C升水。起初它是空的,我们只能往水缸里倒入水,而不能倒出。 可以进行的操作是: 把一个容器灌满; 把一个容器清空(容器里剩余的水全部倒掉,或者倒入水缸); 用一个容器的水倒入另外一个容器,直到倒出水的容器空或者倒入水的容器满。     问是否能够通过有
用杯子量水问题通用解法
用杯子量水问题通用解法     园子里有朋友提到这个问题,相信各位都见过这种题,有时面试也会碰到。     解题方法有很多,有人靠猜、穷举、倒推,在倒水次数很多的情况下,就会比较麻烦了。     早些年的时候我得出了一种通用而简单的解此类题目的方法。     以一个5升一个6升杯子倒3升水为例,这两个杯子根据装的水量不同,共有22种状态,而加水倒水的过程就是在这些状态之间切换的过程
算法题:水杯倒水的问题
之前好像在博客园看到这样的题目: 1.有3个容器,各是20升,13升,7升, 形状不同也不透明。一开始20升的容器里面装了20升水,反正倒来倒去最后要让20升和13升容器各装了10升水 2. 2个外形不同的瓶子,各装800毫升水,另外还有1个300毫升的杯子 现在有4个人,不限制喝的次数,想办法让每个人都正好喝到400毫升水 第一第二道题目,口头说明解法就行了 第三个题,就是从第一
【面试题】:两水桶倒水问题
如果你有无穷多的水,一个3 公升的提捅,一个5 公升的提捅,两只提捅形状上下都不均 匀,问你如何才能准确称出4 公升的水?嘿嘿,这个问题特别的考思路- -大致是能拼出来4的 5 + 5 -3*2 = 4,大致就是这个思路解出来这个题的 那就是 5倒进 3里面 剩 2 然后 3倒光,把5里面剩的 2倒进3里面 这时候:3里面剩 2 升水把5倒满,然后用5的水把3倒满,这时候 5 里面剩 4L