看起來很牛逼,實際上是因為懶得寫詳細題解所以摸了,只寫一句話題解。
02
CF1303F
注意到填充顏色遞增,對每個顏色而言就是此顏色正序加入,非此顏色倒序加入,並查集正反兩遍維護,鏈接。
10
CF1303G
點分治,經過重心的路徑分成上下兩段,對於一個上段,權值關於下段的長度是一個一次函數,用李超樹維護上段的函數,鏈接。
CF1301E
預處理出以每個位置為中心的最大圖標大小,詢問時二分答案查詢一個矩形區域中的最大值是否不小於答案,二維 RMQ,鏈接。
CF1301F
BFS 預處理每個顏色到所有點的距離,要么不傳送(曼哈頓距離)要么傳送(枚舉使用了傳送的顏色,到起點 + 到終點),鏈接。
11
「JSOI2019」精准預測
離散化,2-SAT 建圖,建出來發現是天然的 DAG,傳遞閉包直接 bitset 整上,為了防止 MLE 需要分塊做 bitset,鏈接。
17
「JOI 2020 Final」集郵比賽 3
按照第一次經過每一張郵票的順序做區間 DP,第三維狀態是可收集郵票數,DP 值為最少需要花費的時間,鏈接。
「JOI 2020 Final」奧運公交
注意到是往返,對正反圖以 \(1, n\) 為起點建立 \(4\) 棵最短路樹,Dijkstra 算法使用 \(\mathcal O (N^2 + M)\) 的實現。
一條邊 \(u \to v\) 反向后的 \(1\) 到 \(n\) 的最短路就是「\(1\) 到 \(n\) 不經過這條邊的最短路」與「『\(1\) 不經過這條邊到 \(v\) 的最短路』+ 邊權 +『\(u\) 不經過這條邊到 \(n\) 的最短路』」的較小值,如果這條邊在最短路樹上則需要重新求最短路,\(n\) 到 \(1\) 的最短路類似,鏈接。
27
「HNOI2019」多邊形
這題比較難,本應寫正式題解的,但是不想寫,僅僅是記錄一下,鏈接。
28
「JOI 2019 Final」有趣的家庭菜園 3
考慮 \(\mathrm{dp}[r][g][y][3]\) 表示最終序列中前 \(r + g + y\) 個的顏色分布以及最后一個顏色時的最小逆序對數,轉移顯然,鏈接。
「JOI 2019 Final」硬幣收藏
普及組貪心或者模擬費用流,反正我確實不會,鏈接。
「JOI 2019 Final」獨特的城市
對於某點的獨特的城市都分布在它到離它較遠的直徑端點的路徑上,對兩個直徑端點分別考慮。
以端點為根做長鏈剖分,維護一個棧,在進入某點后棧內元素從淺到深表示忽略該點子樹后的獨特的城市(強制在到根的鏈上)。
要先把距離該點不超過次長子樹距離的點退棧,然后才能往長兒子方向遞歸,然后把距離該點不超過最長子樹距離的點退棧,然后統計該點自己的答案,再遞歸其它兒子,鏈接。
29
「JOI 2018 Final」月票購買
求出所有可能成為 \(S\) 到 \(T\) 的最短路上的邊,把它們按照 \(S \to T\) 方向定向,建立分層圖,第一層和第三層就是原圖,第二層是定向后的那些邊(\(0\) 權),每個點向下一層的同一個點連邊,這樣可以保證如果經過變成 \(0\) 權的那些邊,一定是只會經過一條有向鏈,然后求 \(U \to V\) 的最短路,注意還需要按照 \(T \to S\) 方向定向一次,因為 \(U \to V\) 經過的那些邊可能是與 \(S \to T\) 反向的,鏈接。
「JOI 2018 Final」毒蛇越獄
如果 \(\texttt{?}\) 的數量比較少就暴力,如果 \(\texttt{1}\) 的數量比較少,考慮容斥,需要預處理高維前綴和后的數組,如果 \(\texttt{0}\) 的數量比較少同理,三者結合可以得到 \(\mathcal O (L \cdot 2^L + Q \cdot 2^{L / 3})\) 的時間復雜度和 \(\mathcal O (2^L)\) 的空間復雜度,鏈接。