【題目地址】
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;
************************************************************************/
【代碼】