1 条题解
-
0
- 考虑差分
- 每一次翻面,将翻转区间的所有数据 +1
- 由于起始是反面,翻转次数为0偶数
- 所以翻转奇数次为正面
#include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> d(n + 1, 0); for (int i = 1; i <= m; i++) { int x, y; cin >> x >> y; d[x]++; d[y + 1]--; } int ans = 0; for (int i = 1; i <= n; i++) { d[i] += d[i-1]; ans += d[i] % 2; // 奇数表示正面 } cout << ans << endl; return 0; }
- 1
信息
- ID
- 330
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 500
- 已通过
- 125
- 上传者