D - Cuboid Sum Query
三維字首和。不過有一維範圍小,可以暴力然後二位字首和。
E - Manhattan Multifocal Ellipse
橫縱座標的距離是獨立的。
掃描線掃橫座標,維護每個可行點的縱座標的距離和,查詢就是 \(\le x\) 的數的個數。
可以透過桶做到線性。
F - Maximum Composition
Exchange Arguments.
首先我們想的是如果能確定選的順序,就能一遍 DP 快速求出答案了。
考慮貪心地給他確定一個順序。
考慮對於 \(x\) 和 \(x + 1\):
原本的貢獻為:
\[B_{x + 1} A_{x} + B_{x}
\]
交換後的貢獻為:
\[B_{x} A_{x + 1} + B_{x + 1}
\]
如果想要交換更優,那麼要有:
\[B_{x} A_{x + 1} + B_{x + 1} - B_{x + 1} A_x - B_{x} = B_{x} (A_{x + 1} - 1) - B_{x + 1} (A_{x} - 1) > 0
\]
也即:
\[\frac{A_{x + 1} - 1}{B_{x + 1}} > \frac{A_{x} - 1}{B_{x}}
\]
驗證一下:強完全性 和 傳遞性 肯定是都有的,所以直接排序就是對的。
按這個比較排序即可,之後的 DP 是簡單的,就是什麼 \(f_{i, j}\) 表示前 \(i\) 個函式複合了 \(j\) 個的最大值。
時間複雜度 \(O(n (k + \log n))\)。
G - XOR Neighbors
直接高消。感覺這個 G 挺搞笑的。