对w*h(10*8)网格数据进行存储,无障碍物的位置对应数组元素数值为0,有障碍物的位置对应数组元素数值为1。数组d中数据初始化后,对应数组元素数值d(2)=1:d(27)=1 :d(33)=1:d(45)=1:d(52)=1:d(57)=1,其他数组元素数值为0。对应最大空正方形的起始位置为3,边长为4。
找最大空正方形的方法如下:①从当前位置右下角开始逐渐扩大正方形边长,直到有障碍物出现,不能再扩展为止;②取下一个位置,按照步骤①继续查找,最后1列为边界,该位置上无需查找。

(1)给定7*8网格,有障碍物的位置为d(8)=1:d(18)=1:d(27)=1:d(36)=1:d(52)=1,则对应最大空正方形的起始位置和边长分别为__________。(注:两个数字之间请用逗号“”,隔开)
(2)小李根据上述描述,设计了一个查找最大的空正方形起始位置和边长的算法。算法的VB程序如下请在划线处填入合适的代码。
Const W=10
Const h=8
Dim d(1 To w*h)As Integer
Private Sub Form Load ()
’数组初始化,无障碍物的位置对应数组元素值为0,有障碍物的位置对应数组元素数值为1
End Sub
Private Sub Command l_Click()
Dim i As Integer,length As Integer,maxw As Integer
Dim max As Integer
max=0
For i=1 To w*h
If i Mod w <> 0 Then ’判断该位置是否需要查找
If length>max Then max =length:maxw=i__________
End If
’输出最大空正方形的起始位置和边长,代码略。
End Sub
Function scan(k As Integer)As Integer
Dim j As Integer
Dim t As Integer,s As Integer
Dim dw As Integer
t=1
Do While k\w+1+t<h And__________。
s=0
dw=k+w+1
For j=1 To t^2
s=s+d(dw+w*((j-1)\t)+(j-1)Mod t)
Next j
If ________ Then。
Exit Do ’退出循环
Else
t=t+1
End If
Loop
scan=t
End Function

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

