一.原理: 1.结构: 完全二叉树(不懂的点这个呀:传送门) 2.可以维护的内容: sum,max,min等 struct node{ int l,r;//左右端点 int sum,maxx,minn;//要维护的值 } 3.示意图(直接盗用学长课件里的图啦) 线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左儿子的区间是[a,c],右儿子的区间是[c+1,b]。(来自课件) (其实这个的原理跟模拟堆差不多,那篇博客被我鸽了 ) 4.说明: 区间[l,r]一般分为[l,mid],[mid+1,r]; mid=floor...