(分型、筆與線段)
分型為頂分型和底分型,還有一種叫做包含。頂分型的底和底分型的頂都沒有什麼具體的意義。
三根 k 線,其中第二根 k 線的最高點比相鄰兩根 k 線的最高點高,最低點在相鄰兩根 k 線的的最低點高。
20201115123243
底分型和頂分型相反,高點為相鄰高點的最低點,低點為相鄰地點的最低點。
20201115123453
當一條 k 線的最低點和最高點都在相鄰 k 線內部時,就是包含關係,可把他們變成一條 k 線,如果上公升趨勢,則兩條 k 線都取最高的,若向下趨勢,則都取最低點。同時如果三條線有相互的包含關係,則需要從前到後一次處理再進行判斷
20201115124017
筆是有頂分型的頂和底分型的底組成的,但是頂分型和底分型不可公用任何的 k 線,且中間最好有 k 線。
上公升的一筆:由底分型+上公升 k 線+頂分型組成
下降的一筆:由頂分型+下降 k 線+底分型組成
上公升和下降的 k 線可以是 n 根(n>=1)
上公升趨勢: 和前乙個不是包含關係,最高點逐漸變大
下降趨勢:和前乙個不是包含關係,最低點逐漸降低
線段至少有三筆,但並不是連續的三筆就一定構成線段,這三筆必須有重疊的部分。可分為向上一筆、向下一筆。可以嚴格地說,先頂後底,構成向下一筆;先底後頂,構成向上一筆。
向上線段被筆破壞的條件:其中的分型構成這樣的序列:d1g1d2g2d3g3…dngn(其中 di 代表第 i 個底,gi 代表第 i 個頂)。如果找到 i 和 j,j>=i+2,使得 dj<=gi,如下圖:
20201115172444
向下線段被筆破壞:其中的分型構成這樣的序列:g1d1g2d2…gndn(其中 di 代表第 i 個底,gi 代表第 i 個頂)。如果找到 i 和 j,j>=i+2,使得 gj>=di,那麼稱向下線段被筆破壞。
20201115173157
字首和 差分 樹狀陣列 線段樹
字首和 應用 區間查詢,不涉及數的變化。求區間 l,r d的和 一維字首和 s i a 1 a 2 a i s i s i 1 a i 二維字首和 s i j 第 i 行第 j 列格仔左上部分所有元素的和 以 x1,y1 為左上角,x2,y2 為右下角 s x2,y2 s x2,y1 1 s x1 ...
VVQ 與線段 線段樹 二分
原題鏈結 這題主要是要去判斷2個線段會不會又交集。首先將線段按r從小到大排列,然後乙個乙個放進線段樹裡面方便以後查詢有交集的範圍內的被減數的最小值。然後求交集,若lr與lr有交集,且r是右邊的那個線段。就有l r r,這裡可以使用二分函式lower bound求,主要快一點。然後,交集又分2種情況。...
大三筆記(泛型小記)
泛型類,是在例項化類的時候指明泛型的具體型別 泛型方法,是在呼叫方法的時候指明泛型的具體型別。泛型方法的基本介紹 param tclass 傳入的泛型實參 return t 返回值為t型別 說明 1 public 與 返回值中間非常重要,可以理解為宣告此方法為泛型方法。2 只有宣告了的方法才是泛型方...