HDU 1166 敵兵布陣 不完全線段樹

2021-09-08 15:35:02 字數 999 閱讀 5493

寫的這個偽線段樹花了乙個下午,為什麼說是偽線段樹呢,因為這道題目其實並沒有對一定域進行更新,而只是找的某個點,所以這裡的程式在找的時候無論是要更新的結點還是經過的路徑都統一的 " += update " 了,加油,今天晚上在寫點題目,寫乙個完整版的出來。小結也就等到下個完整版再一一寫出來。

**如下:

#include #include #include #include #include #include using namespace std;

int n;

union mix

;struct node

e[200005], info;

void creat( )

int lch= obj.x.pos<< 1, rch= ( obj.x.pos<< 1 )+ 1;

e[lch].left= obj.left, e[lch].right= ( obj.left+ obj.right )>> 1;

if( e[lch].right- e[lch].left> 1 )

e[rch].left= e[lch].right, e[rch].right= obj.right;

if( e[rch].right- e[rch].left> 1 )

}}int getsum( int l, int r )

else

else if( obj.right<= mid )

else

}} return sum;

}void add( int pos, int num )

e[i].x.sum+= num;

if( pos>= ( ( e[i].left+ e[i].right )>> 1 ) )

else

} }int main()

printf( "case %d:\n", t );

while( scanf( "%s", op ), op[0]!= 'e' )

}}}

hdu 1166 敵兵布陣

這是一道線段樹里最簡單的一類題目了,單點更新型別!include define lson l m rt 1 define rson m 1 r rt 1 1 const int maxx 55555 int sum maxx 2 void pushup int rt void build int l...

hdu 1166 敵兵布陣

線段樹的模版 沒什麼思想 include include include include include include include include include include include include include define ll long long define vi vec...

HDU 1166 敵兵布陣

description lily 特別喜歡養花,但是由於她的花特別多,所以照料這些花就變得不太容易。她把她的花依次排成一行,每盆花都有乙個美觀值。如果lily把某盆花照料的好的話,這盆花的美觀值就會上公升,如果照料的不好的話,這盆花的美觀值就會下降。有時,lily想知道某段連續的花的美觀值之和是多少...