青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

原題地址
這是一道線段樹操作的極品題,因為它的4個操作剛好覆蓋了線段樹操作問題的3種處理思路,可以說是把線段樹操作的全部內(nèi)容都包含進去了。

線段樹是一種靜態(tài)的數(shù)據(jù)結(jié)構,因為一棵線段樹一旦建成,其形態(tài)就永遠不會發(fā)生變化,改變的僅僅是結(jié)點上記錄的各種信息的值。因此,對于線段樹操作,核心問題也就是如何維護和處理這些信息。總的來說,對于線段樹結(jié)點信息的維護和處理,有以下3種基本思路:
(1)左右歸中型:
所謂左右歸中,就是用左右子結(jié)點存儲的信息來得到父結(jié)點存儲的信息的值,這是最常見的線段樹維護方法。舉一些簡單的例子:比如結(jié)點的SUM域表示該結(jié)點區(qū)間上所有元素的和,那么這個域維護的方法就是“父結(jié)點SUM=左子結(jié)點SUM+右子結(jié)點SUM”,再比如結(jié)點的MAX/MIN域表示該結(jié)點區(qū)間上所有元素的最大/小值,那么維護方法就是“父結(jié)點MAX/MIN=max/min{左子結(jié)點MAX/MIN,右子結(jié)點MAX/MIN}”。這種維護方法也比較簡單,只要在每次對子結(jié)點進行修改之后upd一下就行了(對于那些自頂向下遞歸,而且涉及到改值的操作,在遞歸完左右子結(jié)點后一定要記得upd一下),在這之中有一個很重要的思想就是“左右連續(xù)段”思想:如果題目中要求任意一個區(qū)間內(nèi)的具有某種性質(zhì)的最長的連續(xù)序列(也就是子區(qū)間),比如最長連續(xù)上升子序列、01值問題中連續(xù)的0段或者非0段(在具體問題中就是連續(xù)的空閑段或者占用段)等,可以在每個結(jié)點上維護三個域:lS、rS和S,分別表示該結(jié)點區(qū)間左端(從區(qū)間的最左端開始的)具有這種性質(zhì)的最長連續(xù)序列的長度,該結(jié)點區(qū)間右端(到區(qū)間的最右端結(jié)束的)具有這種性質(zhì)的最長連續(xù)序列的長度和該區(qū)間內(nèi)具有這種性質(zhì)的最長連續(xù)序列的長度(也就是要求的那個東東),則維護方法為“父結(jié)點lS=左子結(jié)點lS(左子結(jié)點lS<左子結(jié)點len)或左子結(jié)點len+右子結(jié)點lS(左子結(jié)點lS=左子結(jié)點len),父結(jié)點rS類似,父結(jié)點S=max{左子結(jié)點S,右子結(jié)點S,左子結(jié)點rS+右子結(jié)點lS}”,此外,由于要求的這個區(qū)間可能被拆成多個連續(xù)的結(jié)點區(qū)間,因此需要按順序合并這些區(qū)間,合并的方法是:設立S0和S1,S0表示不保證能延伸下去的區(qū)間長度,S0=上一個區(qū)間的S1+本區(qū)間的lS;S1表示可以延伸下去的區(qū)間長度,S1=上一個區(qū)間的S1+本區(qū)間len(如果本區(qū)間整個都是滿足條件的,即S=len)或本區(qū)間的rS(本區(qū)間不都是滿足條件的,即S<len),取過程中所有S0和區(qū)間S的最大值即為結(jié)果。
在HDU2871中,應用左右歸中的方法維護的信息就是“最長連續(xù)空閑段”的長度,New操作需要;

(2)調(diào)整邊界型:
考慮這樣一個問題:現(xiàn)在要插入、刪除一些[0, 100000)的整數(shù),并且在此過程中不斷詢問第K小的整數(shù)是多少,怎么辦?平衡樹可以實現(xiàn),但線段樹顯然是更好的方法。對每個結(jié)點,存儲一個K0值表示位于該結(jié)點區(qū)間內(nèi)的整數(shù)的個數(shù),則查找第K小的時候只需要不斷執(zhí)行以下操作:Kth(A, K),表示在結(jié)點A代表的區(qū)間內(nèi)找第K小的,然后,若K<=結(jié)點A的左子結(jié)點K0值,則執(zhí)行Kth(A的左子結(jié)點, K),否則執(zhí)行Kth(A的右子結(jié)點, K-A左子結(jié)點的K0)(這和平衡樹神似),直到找到葉結(jié)點為止。這種方法稱為“調(diào)整邊界型”,即隨著結(jié)點深入,不斷縮小(自頂向下)或擴大(自底向上)范圍,最后找到結(jié)果。像找第K小這樣的操作屬于自頂向下型,而像“找到X所在的具有某種性質(zhì)的最長的連續(xù)區(qū)間”就屬于自底向上型(注意和本題的Free不一樣);

(3)標記輔助型:
這種維護信息的方法,特點是利用標記來維護信息,即對于某些結(jié)點(主要是葉結(jié)點,因為其標記不再下放),直接使用標記來得到一些數(shù)據(jù),比如對于HDU2871這一題,其中對于葉結(jié)點位于的插入線段的標號,使用的就是標記。

下面是本題4個操作的具體實現(xiàn):
<1>線段樹結(jié)點定義:
本題需要兩棵線段樹,這是因為New與Free操作對于tot域(插入線段左端點的總個數(shù))會造成不同的影響,具體來說,在New操作中,tot值不會被同時加上(需要另外一個操作加上),然而在Free操作中,tot值會被同時清空,這樣就會導致在對某個結(jié)點清空(該結(jié)點包含在某個Free操作要清空的線段中)并打上0標記之后,如果緊接著又插入一條包含這個結(jié)點區(qū)間的新線段,則這個結(jié)點的0標記就會喪失,這樣在緊接著下傳的時候,其子結(jié)點的tot值就不會被清空(事實上已經(jīng)被清空了)。所以,將tot域徹底轉(zhuǎn)移到另一棵線段樹里。
struct node {
    
int len, mr, lsc, rsc, sc;
} T[MAXN 
<< 2];
struct node0 {
    
int tot;
    
bool mr;
} T0[MAXN 
<< 2];
其中l(wèi)sc、rsc、sc就是連續(xù)空閑段的長度(用左右歸中的方法維護),mr是一個整體賦值標記,在T中,mr的值若為-1表示無標記(未被整體賦值),若為0表示被整體清空,若大于0表示整體被一條線段覆蓋,mr值就是這條線段的編號(為區(qū)分不同線段,這里按照輸入順序?qū)γ恳粭lNew操作插入的線段以1、2……編號),在T0中,mr=1表示在Reset中被整體清空,mr=0表示無標記。
<2>操作處理:
1)Reset操作:將T、T0的根結(jié)點打上清空標記即可;
2)New:涉及到兩個操作,分別是找最左的長度為x的連續(xù)空閑段,以及插入一條線段。對于前者,可以根據(jù)lsc、rsc、sc的值,按照“先左子結(jié)點,再跨越兩個子結(jié)點,最后右子結(jié)點”的順序求得(詳見代碼);對于后者就不用說了,太容易實現(xiàn)了(注意標記的處理以及upd,另外要插入一個tot);
3)Free:也涉及兩個操作,分別是找一個點x所在的線段(插入過的線段)長度以及刪除一條線段,對于前者可將New插入過的所有線段的左右端點預存起來,然后找到代表區(qū)間[x, x]的結(jié)點的mr值(也就是結(jié)點x被編號為神馬的線段覆蓋),再在預存的線段中找到即可。對于后者,直接清空即可(不要在T0中打標記,而要單獨刪除一個tot);
4)Get:直接利用T0中的tot找到第K小的值即可;

代碼
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老司机午夜免费精品视频| 国产精品黄页免费高清在线观看| 欧美电影免费观看高清| 欧美中文字幕视频| 欧美一区二区三区免费观看| 香蕉免费一区二区三区在线观看 | 日韩一区二区精品在线观看| 日韩视频在线观看| 亚洲一区二区网站| 久久黄色小说| 老司机久久99久久精品播放免费| 美女尤物久久精品| 亚洲精品在线视频| 午夜欧美大尺度福利影院在线看| 久久精品av麻豆的观看方式| 欧美精品七区| 国产一区二区三区直播精品电影| 亚洲高清免费视频| 欧美一区二区女人| 亚洲国产日韩在线一区模特| 一本一本久久a久久精品综合妖精| 亚洲视频第一页| 久久五月天婷婷| 国产精品久久久久久久久久久久| 一区视频在线看| 性欧美xxxx大乳国产app| 老司机久久99久久精品播放免费| 亚洲精品一区二区三区99| 欧美在线黄色| 国产精品久久久99| 日韩网站在线| 久久久噜噜噜| 亚洲第一网站免费视频| 亚洲性夜色噜噜噜7777| 久久综合福利| 亚洲一区bb| 久久综合网hezyo| 国产精品久久久久久av下载红粉 | 欧美日韩精品免费| 精品电影在线观看| 欧美在线精品一区| 中日韩美女免费视频网站在线观看| 久久亚洲一区二区三区四区| 国产欧美精品一区二区三区介绍| 日韩网站在线| 亚洲国产毛片完整版| 久久综合狠狠| 亚洲国产婷婷香蕉久久久久久99| 久久婷婷人人澡人人喊人人爽| 亚洲欧美日韩国产一区二区三区| 国产精品www.| 亚洲欧美日韩国产综合在线| 一区二区三区三区在线| 国产精品高潮呻吟久久av黑人| 一区二区三区产品免费精品久久75 | 国产精品日韩久久久| 一本色道88久久加勒比精品 | 欧美一区二区成人| 一本色道久久综合亚洲精品不| 欧美国产在线电影| 日韩视频一区二区三区| 亚洲激情视频在线观看| 欧美欧美在线| 亚洲一区二区毛片| 亚洲一区免费视频| 国产日韩欧美在线播放不卡| 久久精品国产免费观看| 久久久91精品国产一区二区三区 | 欧美午夜视频在线观看| 亚洲在线成人| 午夜精品婷婷| 韩日精品中文字幕| 亚洲大胆av| 欧美日韩视频专区在线播放 | 夜色激情一区二区| 美女免费视频一区| 亚洲九九爱视频| 日韩视频在线观看国产| 国产精品久久久久久久久久久久久久| 亚洲综合色视频| 篠田优中文在线播放第一区| 韩国成人精品a∨在线观看| 裸体丰满少妇做受久久99精品 | 亚洲视频免费在线| 国产亚洲欧洲| 欧美~级网站不卡| 欧美日韩成人| 欧美在线日韩精品| 欧美激情1区2区3区| 香蕉成人伊视频在线观看| 久久频这里精品99香蕉| 亚洲亚洲精品三区日韩精品在线视频| 欧美一区二区三区在线免费观看| 亚洲国产精品一区二区www在线| 亚洲毛片av在线| 国产亚洲一区二区在线观看| 亚洲大片免费看| 国产深夜精品福利| 日韩午夜激情电影| 在线看片欧美| 中国成人黄色视屏| 亚洲黄网站在线观看| 午夜精品一区二区三区四区| 99成人免费视频| 久久久亚洲午夜电影| 亚洲制服av| 欧美超级免费视 在线| 欧美在线一级视频| 欧美日韩精品久久| 欧美国产精品久久| 国产三区二区一区久久| 日韩视频免费| 亚洲人成网站在线播| 欧美一区激情| 午夜在线精品偷拍| 欧美日本三级| 欧美激情国产日韩| 一区二区三区自拍| 欧美在线视频一区| 欧美主播一区二区三区| 国产精品免费视频观看| 99视频有精品| 一区二区三区欧美| 欧美激情aaaa| 亚洲国产第一页| 亚洲高清久久久| 久久久国产亚洲精品| 久久久久欧美精品| 国产午夜精品一区二区三区视频| 一区二区三区日韩精品视频| 一区二区日韩精品| 欧美日韩亚洲视频| 日韩视频一区二区三区在线播放| 亚洲激情视频在线| 欧美插天视频在线播放| 欧美激情精品久久久久久蜜臀| 激情91久久| 欧美a级片网站| 欧美一区二区精美| 国产精品剧情在线亚洲| 日韩网站在线观看| 亚洲视频在线观看网站| 国产精品电影网站| 亚洲欧美日产图| 久久久999精品| 亚洲电影免费在线观看| 欧美a级理论片| 亚洲另类春色国产| 亚洲永久在线观看| 国产亚洲视频在线观看| 久久综合亚州| 亚洲精品国产精品国自产观看浪潮 | 欧美sm视频| 亚洲精品在线免费观看视频| 欧美精品久久久久久久久老牛影院 | 欧美有码在线视频| 一区二区三区在线看| 欧美高清hd18日本| 宅男精品视频| 久久亚洲国产成人| 99精品热视频只有精品10| 国产精品v日韩精品| 午夜亚洲精品| 欧美激情一区二区三区在线视频观看| 日韩午夜在线视频| 国产精品视频成人| 鲁鲁狠狠狠7777一区二区| 日韩午夜高潮| 麻豆国产精品va在线观看不卡| 亚洲日本欧美在线| 国产区在线观看成人精品| 麻豆成人在线播放| 一本色道久久综合精品竹菊 | 亚洲成人在线视频网站| 欧美日韩国产综合视频在线| 欧美一区三区三区高中清蜜桃| 亚洲电影免费观看高清| 亚洲在线免费视频| 亚洲第一网站| 国产日韩欧美精品一区| 欧美成人有码| 久久成人免费| 亚洲性线免费观看视频成熟| 欧美激情第1页| 久久精品国产免费观看| 亚洲小视频在线| 亚洲人成久久| 激情久久中文字幕| 国产毛片精品国产一区二区三区| 免费看精品久久片| 久久国产精品久久国产精品| 一本色道久久综合亚洲精品高清| 欧美大片免费久久精品三p| 最新亚洲视频| 国产欧美日韩视频在线观看| 欧美三日本三级少妇三2023| 免费影视亚洲| 久热这里只精品99re8久| 欧美专区日韩专区| 亚洲女人天堂av|