傳送門
T1
單調棧
按照b排序
在家每一個物品時,判斷一下a和b的關系
如果s[sta[top]].a>=s[i].b,就彈棧
記錄所有時候的height,并取最大值
?
T2
單調棧裸題
單調棧是干什么的??
單調棧是記錄一個數的一側的第一個比他大或比他小的數
記錄方法:若a將b彈出,則mark[b]=a;
?
T3
搜索+剪枝
剪枝1:若總長度%要拼成的長度!=0,就不用再搜了一定不合法
剪枝2:從大到小搜
剪枝3:若搜到第一個時,就直接用當前的最大值做為第一個
?
T4
?emm……單調棧
從前掃一遍,從后掃一遍
在彈出時做異或的操作
時間復雜度:O(n)
?
T5
單調棧
話說這一次考了4道單調棧
和最大長方形的思路很像
求以a[i]為最小值的區段的左界le右界ri
然后更新答案num[ri-le(+1)(-1)]//自己看記錄的ri和le是如何記錄的
num[i]=max(num[i],num[i+1])
記住要從后向前取max
?