标签:分块 inline pre bottom 没有 .so size mat base
1 int n; 2 int ans[MAXN*4];//开四倍空间 3 inline int ls(int p){return p<<1;}//左儿子 4 inline int rs(int p){return p<<1|1;}//右儿子
1 void build(ll p,ll l,ll r) 2 { 3 if(l==r){ans[p]=a[l];return ;} 4 //如果左右区间相同,那么必然是叶子节点啦,只有叶子节点是被真实赋值的 5 ll mid=(l+r)>>1; 6 build(ls(p),l,mid); 7 build(rs(p),mid+1,r); 8 //此处由于我们采用的是二叉树,所以对于整个结构来说,可以用二分来降低复杂度,否则树形结构则没有什么明显的优化 9 push_up(p); 10 //此处由于我们是要通过子节点来维护父亲节点,所以pushup的位置应当是在回溯时。 11 }
标签:分块 inline pre bottom 没有 .so size mat base
原文地址:https://www.cnblogs.com/whmrh/p/10357786.html