Codeforces Round #876 (Div. 2) 題解
2023-06-04 19:28 作者:Hypercube07 | 我要投稿
A?The Good Array
考慮從前向后貪心。能不填就不填對前面來說一定合法且不劣,對后面來說一定更優(yōu)。每隔 k 個填一個即可,可能最后一個位置要額外填,特判一下就好了。
B?Lamps
簡單貪心。由于 x 小的更容易壞,所以我們一定先使用小的。然后冷靜分析一下發(fā)現這樣操作對于每個 x 是獨立的,對每個 x 取前 x 大即可。
C Insert Zero and Invert Prefix
取反這種操作正做反做是本質相同的,所以直接考慮倒過來做。相當于每次從 a 中取一個 0 刪掉,把前面取反。冷靜分析發(fā)現只要最后一個不是 1 一定有解,簡單構造方案即可。
D?Ball Sorting
考慮我們的操作本質是什么。實際上我們每次取出一個數插入到一個位置就相當于刪除這個元素,因為我們可以提前欽定將這個元素放到正確的位置上。然后對于每個 0 相當于刪除一個連續(xù)段,所以我們相當于對每個 k 求刪除 k 個連續(xù)段,使剩下序列升序的最小代價。直接 dp 即可。
E?Decreasing Game
容易發(fā)現后手勝的一個充分條件是原集合可以劃分為兩個相等的集合,實際上這也是必要的。因為其余情況先手隨便選也永遠不可能劃分為兩個相同集合。背包判定即可。