Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >堆叠盒算法

堆叠盒算法
EN

Stack Overflow用户
提问于 2014-04-02 07:12:37
回答 2查看 1.4K关注 0票数 4

我被困在解决这个问题上了。造成混乱的主要原因是不知道什么时候该移除一个盒子。

我的方法是:

我一列一列地看集装箱。如果原语框的顶部大部分框是空的,而目标框不是空的,那么我知道要添加该框。如果顶部的盒子反过来的话,我知道要把它移除。我认为,当两个位置都有一个盒子,但又不同的时候,我必须交换。然而,我的问题是,在某些情况下,移除底部的框会将所有东西向下移动,使其更像目标框。或者可能移除中间的一个,或者移除两个,一个在底部,一个在中间。我怎么知道什么时候取下一个盒子?我可以删除所有的组合,看看是什么使它最接近目的地,但这似乎没有效率。

我也可能认为这是一个明显的动态规划问题,在我脑海中浮现。如能提供任何帮助,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-02 07:34:23

您已经将问题简化为一次只考虑一列,所以让我们从这一点开始。

与其考虑专栏中可能发生的特定操作,不如让我们看一下整个过程。最初,我们有给定的列。最后,我们得到了结果列。结果列中给定列的剩余部分是什么?它是给定列的子序列(因为我们可以从任何地方删除一个框),它转移到结果列的前缀(“前缀”中的“位于底部”中,因为我们只能在最初存在的内容的基础上添加新的框)。

当然,我们希望最大限度地延长这个序列的长度(子序列或前缀,取决于您查看的位置)。这看起来确实是一个动态编程问题,类似于编辑距离最长公共子序列。也许你会想要从这一点开始自己制定细节。祝好运!

票数 1
EN

Stack Overflow用户

发布于 2014-04-02 07:59:03

当然,您可以一次工作一个列。

然后,要将列[x1, x2, x3, ...]转换为列[y1, y2, y3, ...],有几种情况:

  • case (A):x1y1相同:这是很简单的情况,您需要匹配其余的
  • 案例(B):x1-y1不是:您需要插入所有剩余的y
  • 案例(C):y1-x1不是:您需要删除所有剩余的x
  • case (D):x1y1不是空的,而是不同的;在这里您必须选择:(D1)翻转x1和匹配[x2,...][y2,...],(D2)移除x1和匹配[x2, ...][y1, ...]。您应该选择(D1)或(D2),这取决于哪种操作需要更少的操作。

注意:根据规则,在D3中插入y1并将[x1,...][y2,...]匹配的选项( x )是不可用的,因为您只能在堆的顶部添加框(案例B)。

这在动态规划(或递归与回传)算法中转换为:

代码语言:javascript
运行
AI代码解释
复制
int min_moves(int i, int j);

您需要计算将列x[i], x[i+1], ...对齐到列y[j], y[j+1], ...的移动次数,其中xy是从文件读取的两个清单的原始内容,假定x[i]y[i]是任何i>m-

要计算min_moves(i, j),可以使用min_moves(i+1, j+1) (case A+D1)、min_moves(i+1, j) (Case D2)。案例B和C不需要递归,而是直接在xy上计算。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22815796

复制
相关文章
试题:DES算法S盒运算
2023/10/18
2120
试题:DES算法S盒运算
堆叠技术之堆叠分裂、双主检测
堆叠建立后,主交换机和备交换机之间定时发送心跳报文来维护堆叠系统的状态。堆叠线缆、主控板发生故障时或者其中一台交换机下电、重启都将导致两台交换机之间失去通信,导致堆叠系统分裂为两台独立的交换机 而堆叠分裂后,若两台交换机都在正常运行,则其全局配置完全相同,会以相同的 IP 地址和 MAC 地址(堆叠系统 MAC)与网络中的其他设备交互,这样就导致 IP 地址和 MAC 地址冲突,引起整个网络故障,此时可以依靠堆叠的双主检测来避免堆叠分裂后出现双主。
Ponnie
2021/02/24
3.9K0
堆叠柱图
▽▼▽ 首先还是来看堆叠柱图所用到的数据组织结构: 利用以上数据插入图表——柱形图(簇状)。 然后为工资数据序列开启纵坐标轴。 修改两个数据序列的纵轴数据范围: 人数:0~20 工资:-50000
数据小磨坊
2018/04/10
8970
堆叠柱图
堆叠注入详解
Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做stacked injection。
HACK学习
2019/08/05
2.6K0
图像覆盖堆叠
2021-12-10 21:57:19.573 | INFO | __main__:image_stitching:49 - 待拼接图片的原尺寸: (460, 460) 2021-12-10 21:57:19.575 | INFO | __main__:image_stitching:52 - 待拼接图片重置尺寸: (1280, 1280) 2021-12-10 21:57:19.654 | INFO | __main__:image_stitching:58 - --- width=1280,heigh=1280 2021-12-10 21:57:20.915 | INFO | __main__:<module>:75 - 左右拼接完成 --- 2021-12-10 21:57:21.070 | INFO | __main__:image_synthesis:12 - 母图尺寸:(2560, 1280) 2021-12-10 21:57:21.071 | INFO | __main__:image_synthesis:14 - 子图尺寸:(460, 460) 2021-12-10 21:57:21.073 | INFO | __main__:image_synthesis:17 - 子图重置比例: 1.1130434782608696 2021-12-10 21:57:21.075 | INFO | __main__:image_synthesis:22 - 防止子图尺寸大于母图 2021-12-10 21:57:21.076 | INFO | __main__:image_synthesis:25 - 防止子图尺寸大于母图 2021-12-10 21:57:21.102 | INFO | __main__:image_synthesis:29 - 重置后子图尺寸:(413, 413) 2021-12-10 21:57:22.817 | INFO | __main__:<module>:79 - --- end --- res = C:/Users/xpp/Desktop/Lena\synthesis_.png 算法:图像覆盖堆叠是包括图像读取,图片尺寸读取,重置图片大小,图片等比缩放,图片拼接,图片覆盖与堆叠(子母图)在内。 链接:https://www.cnpython.com/tags/290753
裴来凡
2022/05/29
6420
图像覆盖堆叠
StackView使用(堆叠列表)
StackView也是AdapterViewAnimator的子类,它也用于显示Adapter提供的一系列View。 StackView将会以堆叠(Stack)的方式来显示多个列表项。
李小白是一只喵
2020/04/24
1.3K0
堆叠注入学习
这玩意用来记录一下我前天大晚上不睡觉理解的一个题目,没啥意思,没多少基础的东西,勿看
Elapse
2020/08/17
7000
堆叠Etcd拓扑(推荐)
使用这种方案可以减少要使用机器的数量,湖北遴选降低成本,降低部署复杂度;多组件服务之间竞争主机资源,可能导致性能瓶颈,以及当Master主机发生故障时影响到所有组件正常工作。 在实际应用中,你可以选择部署更多数量>3的Master主机,则该拓扑的劣势将会减弱http://lx.gongxuanwang.com/sszt/7.htm
用户7737280
2022/04/14
6290
什么是堆叠技术?堆叠应该怎么配置?文末附配置指南详细文档!
昨天文章,我们介绍了VXLAN,得到了大家的认可,并且有朋友表示想要了解一下华为交换机的堆叠。那么今天瑞哥整理了一下相关知识,并且我会在文末给大家分享堆叠配置指南!
网络技术联盟站
2023/03/14
8.3K0
什么是堆叠技术?堆叠应该怎么配置?文末附配置指南详细文档!
找回消失的密钥 --- DFA分析白盒AES算法
奋飞: 将密钥进行白盒化处理,融入到整个加密过程中,使密钥无法跟踪还原,保障密钥安全。简单的说,就是你可以明明白白的调试整个算法过程,怎么看都像是AES算法,但却是怎么也找不到密钥在哪里?
奋飞安全
2022/08/17
2K0
盒模型
盒模型的默认行为,当给一个元素设置宽或高的时候,指定的是内容的宽或高,所有内边距、边框、外边距都是追加到该宽度上的。
Cellinlab
2023/05/17
1.9K0
盒模型
网络设备虚拟化:VRRP、堆叠、M-LAG与去堆叠技术
数据中心(IDC)网络的虚拟化技术主要分为三类:网络虚拟化(NV)、网络设备虚拟化(NDV)和网络功能虚拟化(NFV)。
Flowlet
2022/08/18
10.3K0
网络设备虚拟化:VRRP、堆叠、M-LAG与去堆叠技术
多台路由器堆叠_h3c路由器堆叠配置命令[通俗易懂]
本次网络的拓扑结构是三台交换机连接到一起,依次为A交换机,B交换机和C交换机。交换机A是主交换机,他通过G1/1接口连接B交换机的G1/1接口,通过G2/1连接C交换机的G1/1。所有G端口都设置为VLAN 100。这个A交换机作为主交换机完全是网络管理员自己选择的,实际上我们可以随意的将ABC中的任何一个选择为主交换机,大家根据实际情况选择即可。
全栈程序员站长
2022/11/02
2.2K0
【Flutter】堆叠式卡轮播
作为移动应用程序开发人员,我们有时需要制作滑动的,动画的背景图像轮播。但是,有时候,我们需要制作一张滑动卡片传送带,其中包含一些具有各种背景颜色,图像或渐变的信息。
老孟Flutter
2021/06/09
4.1K0
搭建Kubernetes集群(堆叠Etcd拓扑)
Kubernetes版本:Kubernetes-1.23.0Kubernetes与Docker兼容性:湖北遴选v20.10.7+不兼容 -> v20.10.12+不兼容
用户7737280
2022/04/14
4720
白盒测试技术_静态白盒测试
它是度量测试完整性的一个工具,通常可以分为逻辑覆盖和功能覆盖。覆盖率 =(被执行到的项数/总项数)* 100%
全栈程序员站长
2022/09/27
1.4K0
白盒测试技术_静态白盒测试
沙盒
因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件
用户1451823
2018/09/13
2.1K0
弹性盒
布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
SingYi
2022/07/14
1.4K0
StackView实现卡片堆叠如此简单
上一期学习了AdapterViewFilpper的使用,你已经掌握了吗?本期开始学习同系列的StackView控件的使用方法。 一、认识StackView StackView也是AdapterViewAnimator的子类,它也用于显示Adapter提供的一系列View。 StackView将会以堆叠(Stack)的方式来显示多个列表项。 为了控制StackView显示的View组件,StackView提供了如下两种控制方式。 拖走StackView中处于顶端的View,下一个View将会
分享达人秀
2018/02/05
2.3K0
StackView实现卡片堆叠如此简单
点击加载更多

相似问题

堆叠盒切片的线性时间算法

21

堆叠盒的div?

23

垂直堆叠div盒的问题

11

数据块堆叠算法

110

创建行堆叠算法

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档