1. 程式人生 > 實用技巧 >2020.9.6 解題報告

2020.9.6 解題報告

2020.9.6

目錄


\[\text{完全憑依!} \]

\[\text{By:Th15.5Block} \]


答題情況

總成績 : 150 , 排名 : 5 / 6
T1 : 100 T2 : 20 T3 : 30

各題目分析

題目 1 :
預估成績 : 100 實際成績 : 100 考試用時 : 8:00 ~ 8:20

簽到題。

題目 2 :
預估成績 : 100 實際成績 : 20 考試用時 : 8:20 ~ 9:00,10:00 ~ 11:00

先寫了 \(O(n^3\log m)\) 的暴力,卡常卡到 2.4s 想出正解。
寫完正解扔了,最後 FST 了。
有暴力一定要拍暴力!

題目 3 :
預估成績 : 0 實際成績 : 30 考試用時 : 9:00 ~ 10:00,11:00 ~ 11:30

一開始就覺得不可做,棄了,寫了貪心。


題目解析

T1

將 n 個串中相同位置的 0/1 的數量記錄下來。
貪心的找每一位數量較少的數字即可。


T2

二分最小的長度,DP 檢查。
\(f_{i,j}\) 表示使用了 \(i\) 次紅,\(j\) 次綠後,能覆蓋到的最遠的法壇的位置。
DP 方程:

\[f_{i,j} = \max(f_{i-1,j} + k, f_{i,j-1} + h) \]

\(k\) 表示從 \(f_{i-1,j}\) 開始,使用一次紅光,能覆蓋到的最遠的右側的法壇。
可以通過二分得到,\(h\)

同理。

最後檢查能否覆蓋到 \(n\) 即可,複雜度 \(O(n^2\log m)\)\(m\) 為答案最大值)。


T3

要求次短路,先求出最短路。
設到達節點 \(x\) 的最短路長為 \(s1\), 與結點 \(x\) 相連的最短邊長度為 \(c\)
\(s2=s1+2\times c\)\(s2\) 即為次短路長度的上界。
DFS,搜尋過程中利用 \(s2\) 進行剪枝,不斷更新 \(s2\)
可以證明每個節點被到達不超過 \(n\) 次。


程式碼實現

T1 :

考場程式碼



T2:

考場程式碼


正解



T3:

考場程式碼

正解