关于线段树区间修改
  • 板块学术版
  • 楼主EgLund
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/4/4 23:35
  • 上次更新2023/10/28 04:34:49
查看原帖
关于线段树区间修改
313716
EgLund楼主2022/4/4 23:35

为什么这么写:

int query(int l,int r,int id)
{
	if(l<=a[id].l && r>=a[id].r){return a[id].val;}
	//pushdown tag...
	int mid=(a[id].l+a[id].r)>>1;
	if(l<=mid)ans=min(ans,query(l,r,id<<1));
	if(r>mid)ans=min(ans,query(l,r,id<<1|1));
	return ans;
}

对,但是这么写

int query(int l,int r,int id)
{
	if(l==a[id].l && r==a[id].r){return a[id].val;}
	//pushdown tag...
	int mid=(a[id].l+a[id].r)>>1;
	if(l<=mid)ans=min(ans,query(l,mid,id<<1));
	if(r>mid)ans=min(ans,query(mid+1,r,id<<1|1));
	return ans;
}

不对?

2022/4/4 23:35
加载中...