关于 树状数组 实现 区间修改 + 区间查询 的问题
  • 板块学术版
  • 楼主Zhang_Wenjie
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/8/23 09:31
  • 上次更新2023/11/3 01:50:32
查看原帖
关于 树状数组 实现 区间修改 + 区间查询 的问题
481621
Zhang_Wenjie楼主2023/8/23 09:31

void add(int x, ll k)
{
	ll p = x;
	for (; x <= n; x += lowbit(x)) 
	{
		c1[x] += k;
		c2[x] += k * p;
	}
}
ll query(int x)
{
	ll ans = 0, p = x;
	for (; x ; x -= lowbit(x)) 
		ans += (p + 1) * c1[x] - c2[x];
	return ans;
}

原文 link

为什么公式里是 ∑i=1pd[i]×i\sum\limits_{i=1}^{p}d[i]\times i 但代码里是 c2[x] += k * p; 而不是 c2[x] += k * x; ?

2023/8/23 09:31
加载中...