HDU 1540 Tunnel Warfare 【線段樹--最大連續區間】

【題目地址】

  http://acm.hdu.edu.cn/showproblem.php?pid=1540

 

【題目大意】

  題目意思爲有一系列村莊,然後對一些村莊進行破壞或修復。讓你求與某村莊直接或間接相連且都沒有破壞的村莊數量。

 

【解題思路】

/************************************************************************ 
  
此題線段樹最經典的部分是更新部分,也是這題最難的部分,要考慮全面 
 
線段樹結構體定義兩個變量  Lx,Rx  
 
分別表示從左節點開始的長度,從右節點開始的長度 

 

更新代碼是關鍵:
if(tb[rt<<1].Lx==mid-L+1)tb[rt].Lx=tb[rt<<1].Lx+tb[rt<<1|1].Lx;
 else tb[rt].Lx=tb[rt<<1].Lx;

 

if(tb[rt<<1|1].Rx==R-mid)tb[rt].Rx=tb[rt<<1|1].Rx+tb[rt<<1].Rx;
 else tb[rt].Rx=tb[rt<<1|1].Rx;
        
************************************************************************/

 

【代碼】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章