模板题出处 原理就大概如图所示,线段树的每个节点都是原数组的一段区间和,而叶子节点就是原数组对应 的值 建树代码: void build(int p,int lf,int rt){//建树 ans[p]=0; if(lf==rt) { ans[p]=A[lf]; return ; } int mid=(lf+rt)>>1; build(lson); build(rson); push_up(p); } 单点修改其实就是一直缩小被修改点所在区间直到区间与修改点重合。 单点修改代码: void update(int p,in