网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月07日
漏签
0
天
c语言吧
关注:
798,792
贴子:
4,349,811
看贴
图片
吧主推荐
视频
游戏
8
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
这题有什么简单方法不
只看楼主
收藏
回复
我的亚索贱
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如题:利用4个没有刻度的水杯量取一定的水(假设有一个可以流出任意多水的水龙头)输入:4个水杯的容积、想量取的水输出:水杯倒水的步骤例如:( 100 0 0 0 ) ( 6 94 0 0 ) ( 6 0 0 0 )表示如下倒水过程:第1步,倒满100的杯子;第2步,100的杯子往94杯子倒,自己剩下6;第3步,清空6的杯子。最后状态:只有一个杯子里有6升水。
楼主的想法是先找表达式,统计每个数加和减的次数,再去找倒水的方法。解决是能解决,但写了200多行
我的亚索贱
异能力者
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
吧里没有搞算法的?
北京百度网讯科技有限公司
复合益生菌粉的作用与功效?别担心,我们提供专业医疗服务,助您找回健康生活
2025-03-07 14:55
广告
立即查看
贴吧用户_J5SUREG
便当
3
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
希腊奶
simulacrumbd
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
宁愿去写猪国杀
丶仰望丶
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个问题应该挺复杂的,我还搜到了一些论文:
https://www.researchgate.net/publication/362382806_Analysis_of_A_Algorithm_Optimization_and_Breadth_First_Search_in_the_Water_Teapot_Game
。
有个简单的思路是把问题抽象成图的最短路径问题。每个节点是四元组(a,b,c,d)表示四个杯子的状态,要求起始节点到目的节点的最短路径。
可以使用BFS,每一次遍历结果存入哈希表中,第二次遍历到相同节点时,如果步数小于第一次,则继续遍历,否则剪枝,当有一个到达终点的步数,任何大于等于这个步数的遍历可以剪枝,直到遍历结束.
丶仰望丶
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
A*算法效果一般比bfs更好,基础步骤和bfs一样,但是在每一轮遍历(即给所有杯子以及杯子互相倒都遍历一遍)后,第二次起点不是按普通队列的顺序选择的,而是计算实际成本(从初始到现在的步骤数)+启发式成本(人为选择,比如选择所有水杯离目标状态的差值绝对值的和),选择队列中总成本最低的节点作为第二次遍历的起点,一般采用优先级队列具体实现。
克0郞0郞
路人
2
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
量出一升水要多少步
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示