一句話題解(2020-04)


看起來很牛逼,實際上是因為懶得寫詳細題解所以摸了,只寫一句話題解。

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)\) 的空間復雜度,鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM