ABC351E

wscqwq發表於2024-05-01

E - Jump Distance Sum

題意簡述

Just it.

思路

兔子斜著走->國際象棋裡的象->黑象只能到達黑格,白象只能到達白格(橫縱座標相加的奇偶性)。

將點分成兩組,則每組內的點之間都有答案。

可以發現可以先朝著那個方向斜著走,然後超出的部分向著那個方向迂迴是最優的。如圖

image-20240501075813092

不難發現距離是 \(\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