6 条题解
-
0
- 方法 2:维护前缀和,
- TLE,70 分
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, cmd, x, k, l, r; cin >> n >> m; vector<int> a(n + 1); for (int i = 1; i <= n; i++) cin >> a[i]; // f[i] = sum(a[1] + a[2] + ... + a[i]) vector<int> f(n + 1, 0); for (int i = 1; i <= n; i++) f[i] = f[i - 1] + a[i]; // O(m * n) while (m--) { cin >> cmd; if (cmd == 1) { cin >> x >> k; for (int i = x; i <= n; i++) f[i] += k; // O(n) } else { cin >> l >> r; cout << f[r] - f[l - 1] << '\n'; // O(1) } } return 0; }
信息
- ID
- 81
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 97
- 已通过
- 30
- 上传者