尺取法(挑程)

2022-05-02 15:39:16 字數 994 閱讀 4928

這個方法就是兩個標,乙個在後,乙個在前,一般都是類似求和滿足大於某個數或者怎樣的最小個數(目前只會這樣的),前面的一直往前走,直到滿足條件,然後面的往前走,直到不滿足條件。

還有就是set和map真的好用,統計元素出現的個數,可以用set。

附poj 3320**

1 #include 2 #include 3 #include 

4 #include 5 #include

6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12

using

namespace

std;

13const

double pi=3.14159265358979323846

;14 typedef long

long

ll;15

const

int maxn=1000000+5;16

const ll mod=1e9+7;17

18int

a[maxn];

1920

setall;

21 map cnt;

22int

main()

2332

int n=all.size();

33int ans=p+1;34

int s=1,t=1,num=0;35

while(1)36

43 cnt[a[t]]++;

44 t++;45}

46if(numbreak

;47 ans=min(ans,t-s);

48if(--cnt[a[s++]]==0

)49 num--;50}

51 printf("%d"

,ans);

52return0;

53 }

演算法 尺取法

我們先來介紹一下尺取法。尺取法,顧名思義,像尺子一樣,一塊一塊的擷取。題目翻譯 給定長度為n的數列整數a0,a1,a2,a3 an 1以及整數s。求出綜合不小於s的連續子串行的長度的最小值。如果解不存在,則輸出0。限制條件 100s 10 8 這裡我們拿第一組測試資料舉例子,即 n 10,s 15,...

尺取法練習

mr wolfram 的csdn 部落格 hopeforbetter的csdn部落格,尺取法顧名思義就像尺子一樣,當測量乙個物體時,你不一定從開始的位置測量,你可以從任意乙個位置st開始,當然前提是尺子夠長,然後你再讀出尾部en的數,尾部減去開始的位置en st,就是這個物體的長度。尺取法就是這個思...

尺取法基礎

p1638 逛畫展 題意 求最短區間包含所有畫家。思路 利用兩個變數來維護區間,如果區間不滿足條件r 滿足的話,l 直到區間最小。includeusing namespace std int a 1000005 b 1000005 int main b a l if b a l 0 k l else...