关于树剖做法的一个问题
查看原帖
关于树剖做法的一个问题
754746
Resolute_Faith楼主2022/7/22 23:01

以下线段树查询的两种写法,为啥前者对而后者错啊,这个新矩阵运算,难道不是满足合并的规则吗?

Matrix ask(int p,int l,int r,int x,int y){
    if(l==x&&r==y) return tr[p];
    if(y<=mid) return ask(p<<1,l,mid,x,y);
    else if(x>mid) return ask(p<<1|1,mid+1,r,x,y);
    else return New_Mul(ask(p<<1,l,mid,x,mid),ask(p<<1|1,mid+1,r,mid+1,y));
}
Matrix ask(int p,int l,int r,int x,int y){
    Matrix ans;
    if(x<=l&&r<=y) return tr[p];
    if(x<=mid) ans=New_Mul(ans,ask(p<<1,l,mid,x,y));
    if(y>mid) ans=New_Mul(ans,ask(p<<1|1,mid+1,r,x,y));
    return ans;
}
2022/7/22 23:01
加载中...