B3945 题解
Source & Knowledge
2024 年 3 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
有一个数组
求完成所有操作后数组中大于等于
题目分析
我们在读入数组
在修改时,我们只需要判断修改前的
- 如果修改前的
a[x] 小于V ,并且y 大于等于V ,那么意味着大于等于V 的数多了一个,就给ans 加上1 。 - 如果修改前的
a[x] 大于等于V ,并且y 小于V ,那么意味着大于等于V 的数少了一个,就给ans 减去1 。
完成
注意到,输入的所有数字都为整数,且都不超过 C++ 中 long long。
cin >> n >> q >> v;
for (int i = 1; i <= n; ++i)
cin >> a[i], ans += a[i] >= v;
while (q--) {
cin >> x >> y;
ans += a[x] < v && y >= v;
ans -= a[x] >= v && y < v;
a[x] = y;
}
视频讲解
完整代码见视频题解