BZOJ 4919 [Lydsy1706月賽]大根堆 (SRM08 T3)

【題解】   求一個序列的LIS有一個二分做法是這樣的:f[i]表示長度爲i的上升序列中最後一個數最小可以是多少,每次二分大於等於當前數字x的f[j],把f[j]修改爲x;如果找不到這樣的f[j],那就把長度加一併記錄新的f(即f[++len]=x)   現在我們把這個做法放到樹上,同樣是可以做的。我們用set維護子樹內的f數組,父節點在其孩子合併得到的set中二分第一個大於等於它的數字,換成父節
相關文章
相關標籤/搜索