NOI 模擬賽
阿新 • • 發佈:2019-03-23
歐拉 rdquo hnoi 枚舉 線段樹 http href 主席樹 空間
T1 HNOI2015 實驗比較
給 $n$ 個有權值的物品,$m$ 條消息,消息可以是“小於”或者“等於”,一個物品只會與一個小於等於它的東西比較,求最後權值排名方案數 mod 998244353
$n \leq 500$
sol:
考場上自閉了,考出來更自閉
相等的節點縮起來,是一個森林,你要做的是給這個森林編號,要求兒子的編號小於父親的,求方案數
然後 dp 就完事了,$f_{(x,i)}$ 表示 $x$ 為根的子樹劃分成 $i$ 個編號的方案數,合並兩個子樹實質上是合並兩個編號序列搞個 $g_{(i,j,k)}$ 表示把 $i$ 個編號和 $j$ 個編號的序列合成 $k$ 個編號的序列的方案數,一起轉移即可
T2 bzoj3681 Arietta
甚至剛做過
T3 bzoj3772 精神汙染
給一棵樹,給 $m$ 條路徑,隨機選兩條編號不同的,求一條包含另一條的概率
$n,m \leq 100000$
sol:
考場上想的是開個 vector 記錄每個左端點的右端點都是啥,然後對歐拉序建主席樹,每次把當前點掛的所有右端點差分成入棧 +1,出棧 -1
然後枚舉每一條路徑,定位到每條路徑對應的線段樹,分別查 $x->lca$,$y->lca$,$lca->lca$ 的和最後 $-1$ 就可以了(因為歐拉序好像不太滋磁直接查一條不是祖孫鏈的路徑)
這個東西常數奇大,空間還卡,滿數據 1.2s 而且沒啥可優化的了
後來發現數兩個矩形裏的點就可以了
不過調 4K 的代碼還是挺爽的
一下午寫了 10K,去世
NOI 模擬賽