閱讀題幹,顯然,字典序排序。
首先很容易想到乙個錯誤做法:
從前往後,每乙個字元與後乙個進行比較,
只要比後面的大,
就交換。
但是仔細想想實際上是看了樣例
然後發現顯然不對。
然後換一種貪心思路:
我們把未排序的部分中最小的字元盡可能地前移。
顯然正確。(95分)
由於複雜度限制,
需要使用線段樹或平衡樹進行優化。不會
首先遞推從每個點出發單調下降的路徑數量。
對於每個點\(x\),設從\(x\)出發,到每顆子樹中單調下降的路徑數量分別為\(s_1\),…,\(s_k\),那麼以該節點為海拔最高點的合法路徑數量為
\[\begin
\left(\sum_^ks_i\right)^2-\sum_^k
\end
\]將所有點的貢獻相加就是答案。
時間複雜度\(o(n)\)。
通過\(bfs\)求出\(dis_\)表示從\(x\)到\(y\)長度為偶數/奇數的最短路徑,那麼存在一條從\(x\)到\(y\)長度為\(d\)的路徑當且僅當\(dis_\le d\)
空間複雜度較大,可以通過把詢問離線將空間複雜度優化成\(o(n)\)。
時間複雜度\(o(n^2)\)。
不會
PAT甲級1003題解 Dijkstra
解題步驟 1.初始化 設定mat存放點之間的距離,vis存放點的選取情況,people存放初始時每個城市的人數,man存放到達每個城市的救援隊的最多的人數,num存放到達每個城市的最多的人數 在最短路徑的基礎之上 dist存放從起點開始到達每個城市的最短的路徑 隨著每次選取點而更新 2.核心演算法 ...
題解 P1003 鋪地毯
這個很多julao會感覺很簡單 那我還是寫一下吧 為了準備乙個獨特的頒獎典禮,組織者在會場的一片矩形區域 可看做是平面直角座標系的第一象限 鋪上一些矩形地毯。一共有 nn 張地毯,編號從 11 到 nn 現在將這些地毯按照編號從小到大的順序平行於座標軸先後鋪設,後鋪的地毯覆蓋在前面已經鋪好的地毯之上...
LuoguP1003 鋪地毯 模擬
應該也算區間覆蓋問題吧。由於n的範圍很小,只有10000,且最後只查詢1次,所以不需要動用資料結構來解決。直接模擬,查詢的時候乙個個網上看這個點有沒有被覆蓋掉。main.cpp luogup1003 created by x on 2020 2 4.include include include u...