精華區beta C_and_CPP 關於我們 聯絡資訊
對於平面上兩點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)的時間得知,問題卡在找所有任意兩點的方法。 ----- Sent from JPTT on my Samsung SM-N960F. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.173.191 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1540547146.A.43E.html
MOONY135: 如果有ABCDE 五個點 AD跟DA 算一次還是兩次 10/26 17:52
MOONY135: 應該沒誤會題目吧? 10/26 17:52
MOONY135: 弄出CN取2的組合數 再去算? 10/26 17:54
school4303: 錯版了吧 有probsolve 10/26 18:04