luogu P2376 语文成绩
语文成绩
题目背景
语文考试结束了,成绩还是一如既往地有问题。
题目描述
语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮她吗?
输入格式
第一行有两个整数
第二行有
接下来
输出格式
输出仅一行,代表更改分数后,全班的最低分。
样例
3 2 1 1 1 1 2 1 2 3 1
2
数据范围
对于
思路
给[a, b]区间的所有数加上z,很麻烦。
若给差分数组的第a项加上z,再让第b + 1 项减去z,那么前缀和便完成了这一区间都加上z的操作,所以可以一开始将分数作为前缀和
小tips
全部用scanf和printf会快至少500ms
代码
#include <iostream> const int N = 5e6 + 10; int s[N], a[N]; using namespace std; int main() { int n, q; scanf("%d %d", &n, &q); for(int i = 1; i <= n; i++) { cin >> s[i]; a[i] = s[i] - s[i - 1]; } while(q--) { int x, y, z; scanf("%d %d %d", &x, &y, &z); a[x] += z, a[y + 1] -= z; } int min = 5e6; for(int i = 1; i <= n; i++) { s[i] = a[i] + s[i - 1]; min = s[i] < min ? s[i] : min; } printf("%d", min); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律