E - Jump Distance Sum
題意簡述
Just it.
思路
兔子斜著走->國際象棋裡的象->黑象只能到達黑格,白象只能到達白格(橫縱座標相加的奇偶性)。
將點分成兩組,則每組內的點之間都有答案。
可以發現可以先朝著那個方向斜著走,然後超出的部分向著那個方向迂迴是最優的。如圖
不難發現距離是 \(\max(x_1-x_2,y_1-y_2)\),這就是切比雪夫距離。
根據公式轉曼哈頓:\(x_1'=(x_1+x_2)\div2,x_2'=(x_1-x_2)\div2\)。
可以把所有距離 \(\times 2\),最後把 \(ans\div2\),這樣就不會出現小數了,即 \(x_1'=x_1+x_2,x_2'=x_1-x_2\)。
我們需要求的就是每組內部兩兩之間的曼哈頓距離的總和。
橫縱座標獨立,直接拆掉。
貢獻沒有順序,可以排序,去掉絕對值。
然後如:\(1,2,3,4,5\)。
\(2-1\)
\(3-1+3-2\)
\(4-1+4-2+4-3\)
\(5-1+5-2+5-3+5-4\)
不難發現對於第 \(i\) 個數,記前 \(i-1\) 個數的和為 \(sum\),答案為 \(x_i\times(i-1)-sum\),\(sum\) 用字首和維護即可。
\(O(n\log n)\)。
https://atcoder.jp/contests/abc351/submissions/52980476