萌新求助珂朵莉树
查看原帖
萌新求助珂朵莉树
303531
ReverBer楼主2023/7/13 16:19
void Sqrt(ll l,ll r){
	ll L=0,R=0;
	auto end=split(r+1);
	for(auto it=split(l);it!=end;it++){
		if(it->v>1) it->v=sqrt(it->v);
		if(it->v==V) R=it->r;
		else{
			if(V) 
			assign(L,R,V);
			L=it->l,R=it->r,V=it->v;
		}
	}
	assign(L,R,V);
}

这是题解里的开方写法 我没明白在暴力开方之后 assign 的原理 但是不这么写就会 t

还有if(V) 后面什么都不跟 没见过这种写法 但是删掉就会 RE.

求讲解

2023/7/13 16:19
加载中...