1 条题解
-
0
差分数组维护每个位置被修改的次数。
#include <bits/stdc++.h> #define int long long using namespace std; int n, m; int a[100000 + 5]; int f[100000 + 5]; signed main() { cin >> n >> m; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= m; i++) { int l, r; cin >> l >> r; f[l]++; f[r + 1]--; } int now = 0; int ans = 0; for (int i = 1; i <= n; i++) { now += f[i]; if (now > 0 && a[i] % 2 == 1) a[i]++; ans += a[i]; } cout << ans; return 0; }
- 1
信息
- ID
- 14265
- 时间
- 500ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 112
- 已通过
- 26
- 上传者