#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[1000004];
struct data{
int l,r,val,lazy,len;}tr[2*1000004];
void build(int k,int s,int t) {
//建树
tr[k].l=s;tr[k].r=t;tr[k].len=t-s+1;
if(s==t) {
tr[k].val=a[s];return;}
int mid=(s+t)>>1;
build(k<<1,s,mid);
build(k<<1|1,mid+1,t);
tr[k].val=tr[k<<1].val+tr[k<<
【线段树】区间求和+区间修改(区间加)
最新推荐文章于 2024-05-07 10:48:18 发布