这是一个程式作业的加分题,
对于平面上两点A,B,d(A,B)表示从A到B的最短时间,
而移动的方式包括knight moving的8种以及上下左右一次一格,
knight moving一次需时2秒,上下左右则是1秒。
e.g.
d((0,0),(2,2))=3
题目给定N个点,求每个点与其他点的最短时间和,意即对于第i的点xi,求Σd(xi,xj),1<=j<=N
N最大为10^5,时间限制2秒,所以不可能用两个loop找任意两点时间,希望跟大家讨论。
现在的进度是d(A,B)可以用O(1)的时间得知,问题卡在找所有任意两点的方法。