codeforces好題記錄 4D

2021-06-21 00:06:30 字數 639 閱讀 2157

題目見

這道題是lis(longgest increasing string)的乙個變種版本。對於lis問題,我倒是很快能寫出答案,但是如果加上一些限制條件,寫起來就有點難度了。

我們常用的做法是簡單的dp,時間複雜度是o(n^2),如果想要達到o(nlogn),就要在選擇最大長度上做一些優化。如下:

//返回b中剛剛大於num的元素的下標*****************************重要

intbinarysearch(

intnum

,int

k)

return

low; }

//非遞迴解,時間複雜度為o(nlgn)

//增加乙個陣列m[13],m[i]表示最長長度為i + 1的increasing subsequence的最後乙個元素的最小值

int 

lis2()

} return

k; }

這道題先對乙個維度排序,這都可以想到。然後對另乙個維度進行dp,注意一些限制條件,比如長寬都要大於卡片大小。用乙個陣列pre記錄序列前乙個元素的下標。

然後倒序輸出pre的記錄。還是要多練啊!dp太不熟了,知道了方法寫出的**還是非常煩,甚至time limited exceed,功力不夠!

倍增好題記錄

超級鋼琴 bzoj 2006 noi 2010 超級鋼琴 貪心 st表 堆 藥不能停 hdu 3712 fiolki 帶邊權並查集 啟發式合併 監控 類似 國旗計畫 不同的是要去掉被完全包含的區間 國旗計畫 bzoj4444 luogu 4155 loj 2007 scoi2015 國旗計畫 倍增 ...

暑假集訓前好題記錄

luogu4768 noi2018 歸程 dijkstra kruskal重構樹 hnoi2016 樹 可持久化線段樹 樹上倍增 luogu 4688 ynoi2016 掉進兔子洞 莫隊 bitset bzoj4358 permu 可撤銷的莫隊 bzoj 3173 tjoi 2013 最長上公升子串...

牛客網好題記錄01

class test static class a public void setvalue int value public intgetvalue finally static class b extends a public void setvalue int value 本人看到此題,讀著讀...