数据结构——求金属融化所需要的时间(图的遍历)

本文探讨了如何求解金属融化所需时间的问题,该问题涉及到在一个N×N的格子中,金属在液体的影响下融化的过程。通过分析金属形状和液体扩散规则,提出当金属四邻接液体时,融化耗时1单位。文章提到,当金属中空部分暴露,液体会立即填充,且不考虑扩散时间。以输入实例N=16的金属图形为例,给出金属完全融化需要5个时间单位的结果。解决方案建议使用图的遍历算法来实现。提供了VS2012环境下的代码实现作为参考。
摘要由CSDN通过智能技术生成

求金属融化所需要的时间

1) 在N × N的格子上放置着形状不规则的金属(5≤N≤1000)。

  1. 金属为1×1格子的整数倍组成的不规则形状;
  2. 金属有可能中空,这样在开始的时刻中空的方格不会立即充满液体;
  3. 当中空的格子有缺口时,液体可以立即进入到中空的地方。

2) T=0时刻从格子的最外围开始注入某种可以融化金属的液体。

  1. 液体扩散填充的速度不计,例如在T=0时刻液体充满浅蓝色方块。

3) 当金属块上、下、左、右4个方向中至少有两个方向邻接液体的时候,金属块融化,耗时1个时间单位。

  1. 例如图中标记为1的点为T=1时刻将要融化的点;
  2. 当金属中空的部分暴露出来时,例如图中的T=2时刻液体会立刻充满可连接的中空部分,液体扩散的时间不计。如图中在T=5的时刻金属融化。

例 输入:N=16

________________

________________

__##____________

__########______

___####__#####__

___#_##___####__

___#_####_##____

_____########___

_______###______

________________

____#######_____

_____######_____

______##__##__

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值