标签:ast 超过 -- log 最小 line tco ref a+b
直接贴题目吧
题意:求区间连续和大于等于\(S\)的最小长度
这是一道A了一年有多的题目..(感觉我变老了
朴素做法:枚举每一个左端点\(l\),找出最近的合法右端点\(r\),\(O(n^2)\)更新答案
无脑做法:直接二分答案,\(O(nlogn)\)
尺取法:从朴素做法中尝试优化,如果枚举的\(l\)中\(r\)是最近的解,那么下一步的\(l+1\)中\(r‘\)只增不减
\(∵sum[r-1]-sum[l]<S,sum[r-1]-sum[l+1]<S∴r‘≥r\)
由此可以简单地\(O(n)\)解决
https://paste.ubuntu.com/p/hzXCHWW46h/
题意:求恰好包含m种数字的最小区间长度
对于找到某个\(l\)的最小解\([l,r]\)来说,因为[l,r-1]不可能有m种,所以\([l+1,l+1...r-1]\)也不可能有m种,因此l增加时r也单调不降
https://paste.ubuntu.com/p/BWtkvWNffG/
题意:求不包含重复数字的最大区间长度
分析方法一个套路,另外这种更新数值的map不要作死用count()
https://paste.ubuntu.com/p/HXxz6c3S8j/
题意:求\(a[l]⊕a[l+1]⊕...⊕a[r]=a[l]+a[l+1]+...+a[r]\)的最大区间长度
\(a⊕b=a+b\)当且仅当每一位相加不超过1
那么就是说每一位上尺取挑交集更新长度即可
合并到单次操作也是r单调不降,因为r+1可能存在更优的解使得某一位填上1,如果不存在也就是r,而r-1因为l的减少是绝对不会成为更优解
https://paste.ubuntu.com/p/DXNK35XPpr/
luogu - P..
吃完饭再更
标签:ast 超过 -- log 最小 line tco ref a+b
原文地址:https://www.cnblogs.com/caturra/p/9724735.html