1003模擬題解

2022-08-22 02:27:11 字數 651 閱讀 8034

閱讀題幹,顯然,字典序排序。

首先很容易想到乙個錯誤做法:

從前往後,每乙個字元與後乙個進行比較,

只要比後面的大,

就交換。

但是仔細想想實際上是看了樣例

然後發現顯然不對。

然後換一種貪心思路:

我們把未排序的部分中最小的字元盡可能地前移。

顯然正確。(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...