尺取法學習

2021-09-26 00:24:18 字數 501 閱讀 3298

參考資料:《挑戰程式設計競賽》p146

參考部落格:

介紹:

尺取法:顧名思義,像尺子一樣取一段,借用挑戰書上面的話說,尺取法通常是對陣列儲存一對下標,即所選取的區間的左右端點,然後根據實際情況不斷地推進區間左右端點以得出答案。之所以需要掌握這個技巧,是因為尺取法比直接暴力列舉區間效率高很多,尤其是資料量大的時候,所以尺取法是一種高效的列舉區間的方法,一般用於求取有一定限制的區間個數或最短的區間等等。當然任何技巧都存在其不足的地方,有些情況下尺取法不可行,無法得出正確答案。

例題:1、 poj3061

2、 poj3320

3、 poj2566

4、 poj2739&poj2100

總結:尺取法的模型便是這樣:根據區間的特徵交替推進左右端點求解問題,其高效的原因在於避免了大量的無效列舉,其區間列舉都是根據區間特徵有方向的列舉,如果胡亂使用尺取法的話會使得列舉量減少,因而很大可能會錯誤,所以關鍵的一步是進行問題的分析!

尺取法學習筆記

返回的推進區間開頭和結尾,求滿足條件的最小區間的方法稱為尺取法。尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。用尺取法來優化,使複雜度降為了o n 整個過程分為四步 1.初始化左右端點 2.不斷擴大右端點,直到滿足條件 3.如果第二步中無法滿足條件,則終止,否則更新結果 4.將左端點擴大1,然後回到...

尺取法學習筆記

今天老師講了提了下尺取,於是就有了這篇筆記 ps 我覺得我們老師形容得很貼切,尺取就像蟲子蠕動一樣給出乙個序列,求區間和大於或者等於s的最短區間長度.3 2 8 10 5 3 8 4 2 9i 1 2 3 4 5 6 7 8 9 10 ai 3 2 8 10 5 3 8 4 2 9 l r 計算區間...

ACM 學習記錄 尺取法

給定乙個陣列和乙個數s,在這個陣列中找乙個區間,使得這個區間之和等於s。例如 給定的陣列int x 14 和乙個s 15。那麼,可以找到的區間就應該有0到4,3到5,6到7.注意這裡的下標從0開始 對於這樣的題,不用任何技巧就可以跑出結果,例如下面這個方法可能是大多數人能夠想出來的 先用乙個陣列su...