我 的 线 段 树
  • 板块灌水区
  • 楼主Edgebright
  • 当前回复11
  • 已保存回复11
  • 发布时间2023/3/7 20:48
  • 上次更新2023/10/23 22:44:51
查看原帖
我 的 线 段 树
762588
Edgebright楼主2023/3/7 20:48
void mdf(int p,int l,int r,ll d)
{
	if(s[p].l>=l && s[p].r<=r)
	{
		s[p].tag+=d;
		s[p].sum+=ll(s[p].r-s[p].l+1)*d;
		return;
	}
	if(s[p].l>r || s[p].r<l)
	{
		return;
	}
	spr(p);
	mdf(p<<1,l,r,d);mdf(p<<1|1,l,r,d);
	//猜猜是不是少了什么
	return;
}
ll qry(int p,int l,int r)
{
	if(s[p].l>=l && s[p].r<=r)
	{
		return s[p].sum;
	}
	if(s[p].l>r || s[p].r<l)
	{
		return 0;
	}
	spr(p);
	ll res=0;
	res+=(p<<1,l,r);res+=(p<<1|1,l,r);
   //就TM离谱
	return res;	
}

引以为戒, 警示后人

2023/3/7 20:48
加载中...