線段樹的修改

2021-07-05 10:58:58 字數 487 閱讀 5262

對於一棵 最大線段樹, 每個節點包含乙個額外的max屬性,用於儲存該節點所代表區間的最大值。

設計乙個modify的方法,接受三個引數rootindexvalue。該方法將 root 為跟的線段樹中 [start, end] = [index, index] 的節點修改為了新的 value ,並確保在修改後,線段樹的每個節點的 max 屬性仍然具有正確的值。

/**

* definition of segmenttreenode:

* class segmenttreenode

* }*/class solution elseelse

root->max=max(root->left->max,root->right->max);

return;}}

};

線段樹的修改

對於一棵最大線段樹,每個節點包含乙個額外的max屬性,用於儲存該節點所代表區間的最大值。設計乙個modify的方法,接受三個引數root index和value。該方法將 root 為根的線段樹中 start,end index,index 的節點修改為了新的 value 並確保在修改後,線段樹的每...

線段樹的修改

單點修改就很簡單啦,直接遞迴到葉子節點修改就行 void modify int k,int l,int r,int x,int v int mid l r 1 if x mid modify ls k l,mid,x,v else modify rs k mid 1,r x v tree k tre...

線段樹的區間修改

1 include 2 include3 define lc p 1 該節點的左孩子 4 define rc p 1 1 右孩子5 using namespace std 67 很類似與樹狀陣列 8int n,m 9struct segment tree 10tree 1000000 線段樹陣列 1...