取尺法,又被叫做雙指針法菠红,一般可以用來維護(hù)具有單調(diào)性質(zhì)的序列,所以有些題目取尺法和二分都可以用试溯,但取尺法的復(fù)雜度還是優(yōu)于二分的郊酒。
實(shí)現(xiàn)方式
1.維護(hù)兩個指針
2.直接stl 的queue 來進(jìn)行維護(hù)取尺法
總的來說,用第二種相對更好寫,但stl略慢一點(diǎn)试读。
我下面刷的取尺法題目難度主要在cf的1500,1600左右。
下面上例題
1.Hard Process http://codeforces.com/contest/660/problem/C
0,1兩種序列钩骇,最多經(jīng)過k次0->1變化倘屹,問改變后最長相同路徑1的長度。
這道題單調(diào)性質(zhì)在于從貪心的思路來看纽匙,變換一定是是相鄰的拍谐。比如我們可以維護(hù)一個queue,遇到1可以直接插入践瓷,遇到0的話,不滿k次亡蓉,也直接插入砍濒,當(dāng)?shù)扔趉時,我們需要統(tǒng)計(jì)當(dāng)前queue的大小即長度樊卓,然后queue釋放出0后杠河,再插入0赶掖。
code:http://codeforces.com/contest/660/submission/45268215
相同題目:Vasya and String http://codeforces.com/contest/676/problem/C
2.洛谷P1638 逛畫展
這個比上面這個更明顯,就是維護(hù)k陪白。
code:https://www.luogu.org/record/show?rid=13053507
基本相同題目:http://codeforces.com/contest/701/problem/C
3.洛谷 P1102 A?B數(shù)對
這個題也簡單
code:https://www.luogu.org/record/show?rid=13058178
待補(bǔ)