洛谷 P2367 ——语文成绩
Posted 业余算法学徒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P2367 ——语文成绩相关的知识,希望对你有一定的参考价值。
题目描述
语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。
她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少,你能帮帮她吗?
输入格式
第一行有两个整数
n
,
p
n,p
n,p,代表学生数与增加分数的次数。
第二行有 n n n 个数, a 1 ∼ a n a_1 ∼ a_n a1∼an ,代表各个学生的初始成绩。
接下来 p p p 行,每行有三个数, x x x, y y y, z z z,代表给第 x x x 个到第 y y y 个学生每人增加 z z z 分。
输出格式
输出仅一行,代表更改分数后,全班的最低分。
输入样例
3 2
1 1 1
1 2 1
2 3 1
输出样例
2
数据范围
n
≤
5
×
1
0
6
n≤5×10^6
n≤5×106 ,
p
≤
n
p≤n
p≤n,学生初始成绩
≤
100
≤100
≤100,
z
≤
100
z≤100
z≤100
题解:差分
#include <bits/stdc++.h>
using namespace std;
const int N = 5 * 1e6 + 10;
int n, q;
int x, y, z;
int p[N], d[N];
int main()
cin >> n >> q;
for (int i = 1; i <= n; i ++) cin >> p[i];
while(q --)
cin >> x >> y >> z;
d[x] += z, d[y + 1] -= z;
int minv = 1 << 30;
for (int i = 1; i <= n; i ++)
d[i] += d[i - 1];
minv = min(minv, p[i] + d[i]);
cout << minv << endl;
return 0;
以上是关于洛谷 P2367 ——语文成绩的主要内容,如果未能解决你的问题,请参考以下文章