首页 > 其他分享 >抖音的倒水问题, 计算机bfs求解

抖音的倒水问题, 计算机bfs求解

时间:2024-04-25 09:23:16浏览次数:26  
标签:倒水 src 12 bfs rongliang 抖音 history

暴力求解 bfs方法.并且找到的一定是最少步骤

问题:

抖音上面又来了一个倒水游戏

例子: 3个杯子, 容量12, 9, 5 上来12是满的. 然后都没有刻度只能倒到一个满这种倒法, 然后最后希望倒出2个6ml的.

# 抖音上面又来了一个倒水游戏


# 例子: 3个杯子, 容量12, 9, 5 上来12是满的. 然后都没有刻度只能倒到一个满这种倒法, 然后最后希望倒出2个6ml的.


# 这种很类似华容道. 暴力搜一下

#===============这部分需要每次题目给出!!!!!!!!!!!!!
# 维护一下rongliang和开始状态
rongliang=[12,9,5]
kaishi=[12,0,0]
end =[6,6,0] # 




# 显然这是一个马尔科夫过程, 对于kaishi数组进行维护即可.
# 还是使用bfs, 因为这种不会stackoverflow

history=[kaishi]
par=[0] # 指向父指针的索引
lastdex=0
def one_step():
   # 进行一次倒水,遍历所有倒水情况.
   for i in range(lastdex,len(history)):
      tmp=history[i]
      # 尝试新的方式倒水
      for src in range(len(rongliang)):
          for to in range(len(rongliang)):
             src_bottle=tmp[src]
             to_bottle=tmp[to]
             src_cap=rongliang[src]
             to_cap=rongliang[to]
             #=判断是否可以倒水
             if src_bottle!=0 and to_bottle!=to_cap:
                #==========这时候可以倒水.
                daoshuliang=to_cap-to_bottle
                have_shuiliang=src_bottle
                daoshuliang=min(daoshuliang,have_shuiliang)
                # 拼接新的状态
                new_state=tmp.copy()
                new_state[src]-=daoshuliang
                new_state[to]+=daoshuliang
                if new_state not in history:
                  history.append(new_state) # 不用担心死循环. len(history) 到这行时候就赢锁定这个长度了. 用常数替代了.
                  par.append(i)
for i in range(100):
  one_step()
  if end in history:
     dex=history.index(end)
     #========通过par来反解
     lujing=[dex]
     while 0 not in lujing:
        dex=par[dex]
        lujing .append(dex)
     print(f'第{i}次bfs找到了你要的答案,并且算法bfs保证了这个是最少倒水次数')
     print([history[jj] for jj in   lujing[::-1] ])
     break
else:
  print('遍历了100次都找不到你要的答案,可能问题过于复杂或者无解!')

             





















第7次bfs找到了你要的答案,并且算法bfs保证了这个是最少倒水次数
[[12, 0, 0], [7, 0, 5], [7, 5, 0], [2, 5, 5], [2, 9, 1], [11, 0, 1], [11, 1, 0], [6, 1, 5], [6, 6, 0]]
PS C:\Users\admin\Desktop\fucking-algorithm-master>

标签:倒水,src,12,bfs,rongliang,抖音,history
From: https://www.cnblogs.com/zhangbo2008/p/18156866

相关文章

  • 视频中的抖音粉丝灯牌如何切除?
    你是否也有查找和删除视频中含抖音粉丝灯牌片段的需求?传统人工查找和剪辑这些灯牌不仅耗时费力,特别是在面对大量的视频处理工作时还可能因为疏忽没有处理干净导致违规处罚和账号封禁。《小宾灯牌切除器》就可以解决这一难题。这款AI大模型算法驱动的工具能够自动识别并切除视频中......
  • 528. 奶酪(并查集orBFS)
    题面如下:https://www.acwing.com/problem/content/530/大致思路是:合并所有连接的空洞,判断下表面的空洞和上表面的空洞是否是同一集合集合#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#include<cmath>usingnamespacestd;constintN......
  • 动态规划、回溯、BFS、二分、滑动窗口总结
    动态规划动态规划的核心问题:重叠子问题,最优子结构,状态转移方程动态规划与记忆递归的区别:记忆递归为自顶而上的递归剪枝,动态规划为自底向上的循环迭代;正确的状态转移方程+dp[]数组:确定状态(原问题和子问题中变化的变量)->确定dp数组的定义dp[i]->确定当前状态的'选择'并确定......
  • 抖音很火的vbs表白代码(简单实用!)
    <p>好玩的循环表白代码</p>1,右键->新建文本文件2,右键->编辑3,粘贴下面代码MsgBox"十年相遇"MsgBox"百年回眸"MsgBox"千年同船渡"MsgBox"我愿以万年的等待"MsgBox"......
  • 用Vue全家桶纯手工搓了一个开源版「抖音」
    前言2018年刚入行前端时,公司使用的还是Angular。Angular什么都好,就是写代码时的体验老糟心了,改一个地方,按下保存之后,要等好几秒刷新后才能看到效果,Webstorm无比好用的自动保存,对我来说反而像是一个负担。然而2024年了,Angular已经更新了17版本,还是没有解决这个问题,热替换依然那么......
  • 蓝桥杯-长草(BFS)
    0.题目【问题描述】小明有一块空地,他将这块空地划分为n行m列的小块,每行和每列的长度都为1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,这四小块......
  • 抖音评论采集|视频评论批量提取下载工具
    大家好,随着抖音平台的蓬勃发展,现在视频评论都已成为了个人和企业拓展客户群体、了解用户喜好的重要途径之一。现在为了帮助您更高效地采集并分析抖音视频评论,推出了全新版本的抖音视频评论批量采集工具,为您的营销策略提供强有力的支持!......
  • 抖音自动评论软件哪家强?为你揭秘最佳选择!
    抖音自动评论软件哪家强?为你揭秘最佳选择!抖音创作者们,你们是否也在寻找一款好用的自动评论软件,来提升与粉丝的互动,增加视频的曝光率?今天,就让我来为大家揭秘抖音自动评论软件中的最佳选择!首先,我们要明确一点:选择一款好的抖音自动评论软件,不仅要看其功能是否全面,还要考虑其操作......
  • 想要获取抖音作者主页视频?一键获取轻松搞定!
    如今的社交媒体时代,短视频平台拥有无数用户的浏览。许多用户都希望能够获取到自己喜欢的作者主页上的视频,以便随时欣赏。然而,由于平台的严格限制等因素,普通用户往往难以直接获取到这些视频。不过,现在有了小编的帮助,小伙伴们可以轻松地获取到抖音作者主页上的视频,让观看体验更加......
  • 抖音视频评论提取工具|评论ID批量采集下载拓客软件
    解放你的音营销!抖音评论提取工具助你轻松拓客!随着音平台的火爆,如何有效地进行营销和拓客成为了许多企业和个人关注的焦点。针对这一需求,我们推出了全新的评论提取工具,让你轻松抓取关键词相关的视频评论,助力你的营销策略!主要功能:关键词搜索视频评论抓取:只需输入任务名称、......