推歌:早安大森林
模擬賽亂寫(你猜我欠了多少。
-
嘉然登場
確實是好玩的題。
考慮先將其分成兩組,一組 \(<\frac k2\),一組 \(\ge\frac k2\)
考慮使一個數在填的時候使所以剩餘數都可以填它旁邊,或都不可以。
可以將每個 \(<\frac k2\) 的數對應其最小可以放的 \(\ge\frac k2\) 的數,然後從大往小放 \(\ge\frac k2\) 的數,每次放完後將所有與它對應的數都一塊放了。
-
Clannad
考慮其本質是求虛樹大小。
考慮一個點在虛樹內有兩個限制:
-
\(u\) 子樹記憶體在至少一個屬於序列區間的點。
-
除 \(u\) 子樹外其他點和 \(u\) 構成的子樹內至少存在一個屬於序列區間的點。
發現滿足第一個限制但不滿足第二個限制是好求的,直接求區間 \(lca\) 即可。
考慮用滿足 \(1\) 的減掉滿足 \(1\) 且不滿足 \(2\) 的點。
對於滿足 \(1\) 的點,考慮離線,掃描線可以維護右端點。新加一個點,就對其到根的路徑染上當前顏色,最後統計顏色在 \([l,r]\) 之間的點個數即可。
染色可以珂朵莉,統計用樹狀陣列就行。
-
-
修水管
這是逆天狀態的 \(dp\)
和逆天讀題考慮求 \(r\) 輪中第 \(i\) 段被修復的機率。
考慮轉移,發現其之和有幾次水流到過有關,所以設 \(dp_{i,j}\) 表示前 \(i\) 個位置,在 \(r\) 輪中修復了 \(j\) 次的期望。
\(dp\) 列舉當前是否修過轉移,然後就都可以直接推了。
-
小孩召開法 3
trick 貓樹分治。
考慮類似貓樹,每次對分割點左右進行處理,查詢可以直接合並。
發現空間不太夠,可以將其離線,對在哪一層排序,只維護一層資訊即可。
-
橋橋
記一下 Kaguya 發現的將 \(\log\) 換成 \(\alpha\) 的做法。
首先對詢問分塊,每塊先將這塊之前的修改改掉,對於塊內的修改,每次查詢時暴力跑一遍,在撤銷即可。
用可撤銷並查集維護,可以幹到 \(n\sqrt n \log n\) 。
考慮字首的時間排序,可以直接歸併,將 \(\log n\) 乘在 \(n\) 上,調整塊長可以做到 \(n\sqrt{n \log n}\)
考慮整一下並查集,發現可以路徑壓縮,對於塊內的詢問,最多一次完全展開是 \(\sqrt n\) 最多 \(n\) 次,不會有複雜度問題。而加邊查詢的 \(\log\) 就變成了 \(\alpha\),複雜度 \(n\sqrt{n \alpha(n)}\)。
但因為常數問題,其實很難跑過帶 \(\log\) 做法。
-
春色春戀春熙風
樹上啟發式合併板子。
考慮每次陣列維護重兒子資訊,輕兒子跑暴力即可。
線段樹合併在 CF 上也能過,學校 OJ 跑不過去。
-
雪色雪花雪餘痕
發現其就是維護凸殼。
考慮凸殼性質,其差分序列不降,可以直接跑 \(dp\)。
設 \(dp_{i,j}\) 表示用 \(i\) 個正數,和為 \(j\),因為差分不降,所以最少是 \(\sum\limits_{k=1}^i k=j\),\(i\) 是 \(\sqrt m\) 級的。
因為有非負限制,考慮列舉最小值的最左邊位置,欽定最小值為 \(0\),最後在平移。
左邊長度是定值,右邊是一個 \(\le k\) 的限制,用字首和做掉,平移也可以用字首和。
時空都帶根號,用撤銷空間可以省掉根號。
沒有鮮花可以不寫,不要寫這種東西髒了我的眼
一張穗?