關於一類SA的構造題(gym102803E 2020黑龍江省賽E,某年的final)

題意:

給出sa數組和height數組,構造一個字典序最小的滿足條件的字符串
變式:條件變爲 給出sa和馬拉車的匹配數組


做法類似,先通過height/匹配數組求出 哪些位置相同/不同(連邊),然後構造

構造的話按照排好序的後綴來構造,每次放首字母(即按照sa[i]按順序放,i=1→n)
如果出現強制不同的情況就字母+1

這樣據ozy所說就是字典序最小的
大概感受就是要保證滿足限制,就不能直接按位放,而是要按sa[i]來放
並且sa[i]一定也是儘量往小的靠,因爲假如把一個sa[i]上的字母變大,由於有ch sa[i]<=ch sa[i+1],前面不變,後面可能變大,一定不優
所以按sa[i]放且儘量放小是最優策略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章