社区讨论
70pt 1 2 3和subtask没过,求调
P3374【模板】树状数组 1参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mkjqkrbz
- 此快照首次捕获于
- 2026/01/18 20:52 2 个月前
- 此快照最后确认于
- 2026/01/18 20:52 2 个月前
rt
CPP#include <iostream>
using namespace std;
#define lowbit(x) ((x) & (-(x)))
#define MAXN 5000005
typedef long long ll;
ll c[MAXN];
ll m, n;
void add(ll, ll);
ll sum(ll);
ll qry(ll, ll);
int main()
{
cin >> m >> n;
for (ll i = 1, t; i <= n; i++)
{
cin >> t;
add(i, t);
}
ll o, x, y;
while (m--)
{
cin >> o >> x >> y;
if (o == 1)
add(x, y);
else
cout << qry(x, y) << endl;
}
return 0;
}
ll qry(ll x, ll y)
{
return sum(y) - sum(x - 1);
}
void add(ll i, ll t) // 在x处加t
{
for (; i <= n; i += lowbit(i))
c[i] += t;
}
ll sum(ll i) // 查询1~x的和
{
ll s = 0;
for (; i; i -= lowbit(i))
s += c[i];
return s;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...