尺取法总结
admin
2024-03-22 23:13:04
0次

一般地,当我们要去枚举满足条件的区间权值的区间,可以用遍历双指针 l 和 r 的做法去枚举第一个满足条件的区间,然后去维护其他数据,这样的做法就是尺取法,它的复杂度为O(n)

为什么复杂度是O(n)呢?l 只会增大,r也只会增大,因此遍历的次数加起来最多也就2*n,也是O(n)级别的复杂度

这里的权值泛指区间的属性,包括区间和,区间内数字种类数等....

尺取法需要满足的条件:区间权值大小满足区间长度的单调性,即区间长度越长,区间权值越小或越大

尺取法的优点在于:它不会去枚举到一定不满足条件的区间

它的一般格式为:

for(int l=1;l<=n;l++){while(r=s&&r-l+1<=n){ans=min(ans,r-l+1);}sum-=a[l];

首先,枚举 l ,就是相当于给所有状态按左端点分了个类,去枚举以 l 为起点的第一个满足条件的区间

确定为 l 后,r++就相当于剪枝了一定不满足条件的区间,在此过程中维护区间和sum

当我们发现终于枚举到第一个满足条件的区间时,去统计一下区间长度最小值

sum-=a[l]就很妙,它利用了尺取法的单调性,sum减去之后,下一轮枚举新的 l ,这样的 l,r是以新的 l 为起点的最接近满足条件的区间,这样也省得去枚举以新的 l 为起点,右端点为r之前的一定不满足条件的区间了 

不光是区间和,尺取法也可以维护一些其他数据,但是这些数据必须满足关于区间长度的单调性

比如维护区间数字种类数:(145条消息) 尺取法 P1638 逛画展_lamentropetion的博客-CSDN博客

那么做题的时候怎么去考虑:

1.当要去枚举满足一定条件的区间时,可以看看需要满足的条件是否关于区间长度单调,是的话就是尺取做法没跑了

2.去整理我们要维护什么,只有满足单调性的东西我们才能放在尺取法里面维护

3.写模板,然后去维护我们想要的数据即可,一般维护数据写在r++的那个循环,还有 l 的回退,记录数据就在if那边记录就行

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...