1 条题解
-
0
文字教学
这道题数据规模大,用差分法高效处理区间更新:
- 定义差分数组
d,对区间[a,b]浇水一次,只需d[a] += 1、d[b+1] -= 1。 - 遍历差分数组计算前缀和,前缀和的值就是当前树苗被浇水的次数,同时记录最大值即可。
代码
#include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10; int d[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; while (n--) { int a, b; cin >> a >> b; d[a]++; d[b + 1]--; } int cur = 0, mx = 0; for (int i = 0; i < N; ++i) { cur += d[i]; if (cur > mx) mx = cur; } cout << mx << endl; return 0; } - 定义差分数组
- 1
信息
- ID
- 11165
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 3
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者
京公网安备 11011102002149号