template<class tp>
class LineTree{
public:
LineTree(){}
void build(int id,int l,int r){
p[id].l=l,p[id].r=r;
if(l==r){
p[id].val=a[l];
return;
}
int mid=l+r>>1;
build(ls(id),l,mid);
build(rs(id),mid+1,r);
pushup(id);
}
void update(int id,int l,int r,tp val){
if(l<=p[id].l && p[id].r<=r){
brush(id,val);
return;
}
pushdown(id);
int mid=p[id].l+p[id].r>>1;
if(l<=mid) update(ls(id),l,r,k);
if(r>=mid+1) update(rs(id),l,r,k);
pushup(id);
}
tp find(int id,int l,int r){
if(l<=p[id].l && p[id].r<=r){
return p[id].val;
}
int mid=p[id].l+p[id].r>>1;
pushdown(id);
tp res=0;
if(l<=mid) res+=find(ls(id),l,r);
if(r>=mid+1) res+=find(rs(id),l,r);
return res;
}
private:
struct node{
int l,r;
tp val,lazy;
}p[N<<2];
inline int ls(int id){return id<<1;}
inline int rs(int id){return id<<1|1;}
tp len(int id){
return p[id].r-p[id].l+1;
}
void brush(int id,tp val){
p[id].lazy+=val;
p[id].val+=len(id)*val;
}
void pushup(int id){
p[id].val=p[ls(id)].val+p[rs(id)].val;
}
void pushdown(int id){
brush(ls(id),p[id].lazy);
brush(rs(id),p[id].lazy);
p[id].lazy=0;
}
}tree<long long>;
rt,最下面那一行 }tree,long long>;
报错了,说 “应输入';'”,请问各位大佬,这是什么情况,怎么修复/kel