由于新冠肺炎疫情影响,医用口罩的需求量日益增加。某中学班主任了解到班里 20 名学生的家庭所在小区每周均发放到家庭一定数量的免费医用口罩,于是班主任想到了一个口罩共享方案。通过联系各个家庭,了解到每个学生家庭每周拥有的口罩数量以及最低需求口罩数量,有些家庭是口罩数量不足,而有些家庭是有充足的口罩,如表 1 所示。假设这 20 个家庭每周拥有固定口罩总量及固定需求总量。
表 1 显示了班主任和各个学生的家庭地址地理坐标(单位 km)。班主任想针对这个方案到那些口罩充足的学生家里做一次方案说明的家访。考虑到这些家庭地址不同以及节约时间,班主任想一次性完成这些学生的家访。假设班主任采用滴滴打车方式,请为这位班主任设计一个最省钱的家访方案。
代码如下:
import math
import matplotlib.pyplot as plt
arr = [[23, 17], [10, 0], [20, 20], [3, 8], [33, 3], [18, 4], [42, 8], [53, 16]]
def distant(x1,y1<