[問題] 程式作業加分題

作者: aaaa11140 (Jimmy)   2018-10-26 12:17:31
這是一個程式作業的加分題,
對於平面上兩點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)的時間得知,問題卡在找所有任意兩點的方法。
作者: alan23273850   2018-10-26 12:23:00
這個應該可以直接推數學解吧我猜
作者: s89162504 (阿本)   2018-10-26 13:46:00
從x*x到(x+1)*(x+1)應該不難推吧
作者: bigload1234 (爺的霸氣你不懂)   2018-10-30 09:43:00
用離散法
作者: ken32293355 (ken)   2018-11-03 10:37:00
DP
作者: kyrie77 (NTU KI)   2018-11-06 07:08:00
感覺這種題目幾乎都是用DP
作者: rrkqq (amzon)   2018-11-10 19:41:00
未看先猜ADA
作者: plsmaop (plsmaop)   2018-12-19 07:31:00
Floyd warshall?

Links booklink

Contact Us: admin [ a t ] ucptt.com