1 条题解
-
0
#include <bits/stdc++.h> #define endl '\n' using namespace std; using ll = long long; using ULL = unsigned long long; const int N = 1e6+5; int n, q; ll a[N],t[N]; inline int lowbit(int x) {return x & (-x);} inline void update(int k,ll x) { for (int i = k; i <= n; i += lowbit(i)) t[i] += x; } inline ll getsum(int k) { ll res = 0; for (int i = k; i > 0; i -= lowbit(i)) res += t[i]; return res; } inline void solve() { cin >> n >> q; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i<= n; i++) update(i,a[i]); for (; q-- ;){ int op; cin >> op; if (op == 1) { ll k, v; cin >> k >> v; update(k,v); }else { ll l, r; cin >> l >> r; cout << getsum(r) - getsum(l - 1) << endl; } } } int main() { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); int _ = 1; //int _; cin >> _; while (_--) solve(); return 0; }
- 1
信息
- ID
- 111
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- 递交数
- 63
- 已通过
- 11
- 上传者