蓝桥杯 - [算法提高VIP]分苹果(差分数组)
发布日期:2021-07-01 00:18:29 浏览次数:2 分类:技术文章

本文共 700 字,大约阅读时间需要 2 分钟。

题目链接:

时间限制:1.0s 内存限制:256.0MB

问题描述

小朋友排成一排,老师给他们分苹果。

小朋友从左到右标号1..N。有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果。
最后老师想知道每个小朋友有多少苹果。

输入格式

第一行两个整数N、M,表示小朋友个数和老师个数。

接下来M行,每行三个整数Li、Ri、Ci,意义如题目表述。

输出格式

一行N个数,第i个数表示第i个小朋友手上的水果。

样例输入 

5 3

1 2 1
2 3 2
2 5 3

样例输出 

1 6 5 3 3

数据规模和约定

40%的数据,N、M≤1000。

100%的数据,N、M≤100000,1≤Li≤Ri≤N,0≤Ci≤100。

解题思路

直接差分数组就行了,不需要用线段树。

#include 
using namespace std;int p[100005];int main() { int n, m, l, r, v; scanf("%d%d", &n, &m); for (int i = 0; i < m; i++) { scanf("%d%d%d", &l, &r, &v); p[l] += v; p[r + 1] -= v; } for (int i = 1; i <= n; i++) { p[i] += p[i - 1]; printf("%d ", p[i]); } printf("\n"); return 0;}

转载地址:https://lzyws739307453.blog.csdn.net/article/details/90319048 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:蓝桥杯 - [算法提高VIP]最小乘积(贪心)
下一篇:蓝桥杯 - [历届试题]连号区间数(暴力)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年05月06日 20时13分09秒