OJ 1006:街区最短路径问题
因为只能东西,南北走,所以求一点到另一点的距离就等于横纵坐标的差的绝对值之和,我们将每个点的横坐标取出来,纵坐标取出来,这个问题就成了这些数到哪个数的距离的和最小,分别求出横坐标和纵坐标对应的哪个和,然后求和就行了
n=int(input())
while n>0:
m=int(input())
l=[[] for x in range(m)]
l1=[]
l2=[]
l3=[]
l4=[]
for i in range(m):
l[i]=[int(x) for x in input().split()]
for j in range(m):
l1.append(l[j][0])
l2.append(l[j][1])
a=max(l1)
b=min(l1)
c=max(l2)
d=min(l2)
k=b
e=d
while k<=a:
sum1=0
for q in l1:
sum1 += abs(q-k)
l3.append(sum1)
k +=1
while e<=c:
sum2=0
for p in l2:
sum2 += abs(p-e)
l4.append(sum2)
e +=1
g=int(min(l3))+int(min(l4))
print(g)
n -= 1