1 条题解
-
0
自动搬运
来自洛谷,原作者为

RyanLi
跟着光,靠近光,成为光,散发光。搬运于
2025-08-24 21:16:05,当前版本为作者最后更新于2024-03-10 20:36:48,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
Source & Knowledge
2024 年 3 月语言月赛,由洛谷网校入门计划/基础计划提供。
题目大意
有一个数组 ,需要进行 次操作。每次操作给定 和 两个数,你需要将数组 中的第 个数修改为 。
求完成所有操作后数组中大于等于 的数的个数。
题目分析
我们在读入数组 时,定义一个 变量记录原数组中大于等于 的数的个数。
在修改时,我们只需要判断修改前的 和 ,与 的大小关系即可:
- 如果修改前的 小于 ,并且 大于等于 ,那么意味着大于等于 的数多了一个,就给 加上 。
- 如果修改前的 大于等于 ,并且 小于 ,那么意味着大于等于 的数少了一个,就给 减去 。
完成 次修改操作后直接输出 即可。
注意到,输入的所有数字都为整数,且都不超过 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; }视频讲解
完整代码见视频题解
- 1
信息
- ID
- 9833
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者