最近在刷平衡樹,看到標題就進來了,沒想到是個dp???看了看,發現可以貪心,於是就有了這篇題解。因為紅黑樹本身的性質,所以我們可以通過畫圖來列舉所有情況:
先把每乙個節點看成黑色的,通過紅黑樹性質來把一些結點變成紅色的。
如圖:
最虧的一種情況,兩個黑色節點沒變出來乙個紅色節點。
如圖:
三個黑色節點變成乙個紅色節點,有點浪費。
如圖:
此時四個黑色節點變成兩個紅色節點,黑色節點的利用率最大。
所以,貪心就很明確了。
#include "cstdio"
int n, ans, k;
int main()
printf("%d\n", ans);
k = n + 1;
ans = 0;
while (k > 1)
printf("%d", ans);
return 0;
}
自己想了一種方法,不過好像有億點點慢。
以最小值為例:
用 \(r_\) 表示 \(i\) 個結點,黑高度為 \(j\) 的紅根樹中紅色結點最小值;
\(b_\) 表示 \(i\) 個結點,黑高度為 \(j\) 的黑根樹中紅色結點最小值。
\(\therefore r_=\min\left(,b_+b_+1}\right)\quad(i\leq k\leq i-2)\);
\(\therefore b_=\min\left(,b_,r_+r_,r_+b_}\right)\quad(i\leq k\leq i-2)\);
**就不放了,貪心它不香嗎?
SDOI2008 Sue的小球 題解
給了 n 個小球,第 i 個小球在 x i 初始分值為 y i 同時它會以 dfrac texttt 的速度降低。可以降低為負數 從初始位置開始,每個單位時間可以移動 1 單位長度。收集小球不需要時間,求收集所有小球後能獲得的最大分值。首先,可以想到對每個球按位置從小到大排序。由於總的得分固定,我們...
P2461 SDOI2008 遞迴數列
p2461 sdoi2008 遞迴數列 紀念不看題解 a 掉的第乙個矩陣快速冪 先做完模板題吧p1939 矩陣開 k 1 2 定義函式 f x 為 sum limits xa i 顯然 f x f a i a a a f longrightarrow a i,a a f i 提示到此結束了,仔細想想...
題解 SDOI 2008 鬱悶的小J
話說這題bzoj上沒有,丟乙個洛谷的連線 點我 這題不是很難,對於每一種書建立乙個有序的位置陣列,就是這種書出現的位置集合,然後就是維護這個序列有序了 蒟蒻只能想到兩種 set和平衡樹,set就二分查詢,sbt就find 但mle!蒟蒻的sbt結構體在資料極端情況下欲哭無淚 把裡面和外面的陣列改來改...