后綴數組刷題總結


T1:Sandy的卡片

做這道題時對$height[]$理解不深刻,導致一晚上沒$A$掉這道題

顯然是把差值當成字符數組,把串連起來處理出$height[]$

之后二分,開一個棧記錄存儲出現的元素,只要元素個數大於等於$n$即可判斷合法

T2:喵星球上的點名

延續上一道題的套路,把名字和詢問連成一個串

之后對於每個詢問的起始位置二分出左右能做貢獻的區間

現在問題轉化為m個區間,求每個區間的不同顏色個數以及每個顏色的出現次數

可以用莫隊解決

(然而二分完直接暴掃也可以$AC$)

T3:字符串

 直接做的話前一個串有長度的限制,考慮二分答案來消除限制

之后便可以找到能貢獻答案的區間查詢區間內是否有$[a,b-len+1]$

便是主席樹的板子

(這道題直接掃合法區間可以比主席樹快$7000ms+$)

T4:差異

 思路很簡單,找出每個$height$成為最小值的區間計算答案即可

T5:相似子串

首先一個子串一定是后綴的前綴

所以$height[]$處理完之后相當於把子串也排好序了

直接二分便可以找出排名為i的子串

第一問直接查,第二問二分長度后再查,沒必要把串反過來或者用hash

T6:品酒大會

四次理解錯題意后還是痛苦$AC$了

最好想的思路便是維護最大(小)次大(小)值每次合並區間時硬查更新

但是發現並不需要維護次大(小)值,只需要把兩個區間內的最大*最大,最小*最小更新答案即可

其他的情況一定在原來合並區間時被統計過

注意求解第一問時$height[1]$是沒有直接貢獻的應該把它跳過

T7:外星聯絡

雖然放在了后綴數組(二)里,但是的確是個板子題

對於每個后綴,只需要統計$[h[i-1]+1,h[i]]$在后面出現了多少次

加上2便是答案

T8:股市的預測

 先咕了


免責聲明!

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



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