傳送門
這題
預處理PRe(i),nxt(i)表示與位置i食物相同的前一個/下一個的位置 pos(j)表示[pos(j)+1,i]一共有j種不同的食物 那么
如何維護pos(j)呢? 記cnt(j)表示[pos(j),i]一共有多少種顏色 當i從i-1轉(zhuǎn)移來時可以通過判斷位置i的食物的pre來計算cnt(j) 如果cnt(j)>j即不合法,那么pos(j)要向后移動,直到把某一種顏色在區(qū)間中完全刪除,這中間可以用nxt來判斷
pos(j)單調(diào)移動,總時間復雜度
新聞熱點
疑難解答