
图a
现给定若干个小矩形的坐标点,要求判断能否构建出一个新的大矩形,在大矩形中,各构成的小矩形无重叠,无空白。
例1:给定的5个小矩形能够精确构建一个坐标为(1,1)、(5,4)的大矩形。
小矩形左下,右上坐标如下: | 5个小矩形精确构建一个大矩形: |
矩形1:(1,1),(3,3) 矩形2:(3,1),(4,3) 矩形3:(4,1),(5,3) 矩形4:(1,3),(4,4) 矩形5:(4,3),(5,4) | ![]() |
例2:给定的3个小矩形,有相交区域,有空白区域,不能精确构建成一个大矩形。
矩形1:(1,1),(3,3) 矩形2:(2,2),(4,3) 矩形3:(4,1),(5,3) | ![]() |
构成的大矩形面积等于每个小矩形的面积之和;
获取每个小矩形的所有坐标点,有且仅有四个点只出现一次,其他坐标点成对出现。
(1)给定3个矩形左下和右上坐标依次为[2,4] ,[5,5],[3,2] ,[4,4],[4,2] ,[5,4],请你再添加一个矩形坐标,使4个矩形精准构建一个大矩形,则添加矩形左下和右上坐标依次为_____。
(2)根据上述算法描述,用VB程序实现代码如下,请在画线处填入合适的代码。
Const n = 5'常量n存储小矩形个数
Dim a(1 To 2 * n)As Integer '存储每个小矩形给定X轴坐标
Dim b(1 To 2 * n)As Integer '存储每个小矩形给定Y轴坐标
Private Sub Form_Load()
'本过程读取每个小矩形X轴坐标存储在数组a中、每个小矩形Y轴坐标存储在数组b中,并在List1中显示.代码略
End Sub
Private Sub Command1_Click()
Dim c(1 To 4 * n)As Integer '存储每个小矩形所有X轴坐标,1~2 * n存左下和右上,2 * n+1~4 * n存左上和右下
Dim d(1 To 4 * n)As Integer '存储每个小矩形所有Y轴坐标,1~2 * n存左下和右上,2 * n+1~4 * n存左上和右下
Dim mc(1 To 4 * n)As Integer '记录所有坐标是否成对重复,不重复为1,重复为0
Dim temp As Integer
Dim i As Integer, j As Integer, f As Integer
Dim sum As Integer, sumt As Integer, count As Integer
For i = 1 To 2 * n Step 2
sum = sum + (a(i + 1)- a(i))* (b(i + 1)- b(i))
Next i
f = 1
For i = 1 To 2 * n
c(i)= a(i)
c(n * 2 + i)= a(i)
d(i)= b(i)
d(n * 2 + i)= b(i + f)
①___
Next i
For i = 1 To 4 * n - 1
For j = 1 To 4 * n - i
If c(j)> c(j + 1)Or c(j)= c(j + 1)And d(j)> d(j + 1)Then
temp = c(j): c(j)= c(j + 1): c(j + 1)= temp
temp = d(j): d(j)= d(j + 1): d(j + 1)= temp
End If
Next j
Next i
sumt =②___
If sum <> sumt Then
Label1.Caption = "不能精确构建"
Exit Sub '结束当前过程,不再执行后续程序
Else
For i = 1 To 4 * n
mc(i)= 1
Next i
i = 1
Do While i < 4 * n
If c(i)= c(i + 1)And d(i)= d(i + 1)Then
mc(i)= 0: mc(i + 1)= 0
i = i + 2
Else
i = i + 1
End If
Loop
count = 0
For i = 1 To 4 * n
③___
Next i
If count =4 Then Label1.Caption = "能精确构建" Else Label1.Caption = "不能精确构建"
End If
End Sub

同类型试题

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

