清北7日游(2)

· · 个人记录

Day 2:

上午数论

下午数据结构:

堆:

二叉搜索树:

线段树:

tree *merge(int l, int r, tree *A, tree *B){
if(A == NULL) return B; 
if(B == NULL) return A; 
if(l == r) return new tree(NULL, NULL, A -> data + B -> data); 
int mid = (l + r) >> 1; 
return new tree(merge(l, mid, A -> ls, B -> ls), merge(mid + 1, r, A -> rs, B -> rs), A -> data + B -> data); 
}
//复杂度:两棵线段树中重合结点(对应位置都开出来的结点)的个数。

树状数组: