分苹果——差分数组

article/2025/10/9 5:23:55

7-7 分苹果 (100分)
小朋友排成一排,老师给他们分苹果。

小朋友从左到右标号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≤1 000。

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

这道题就是一道利用差分数组解决的题,先来看一下关于差分数组的东西:

  1. 定义:
    一个n个元素的数列d,它每项与前一项差值组成一个差分数组f,f[1]=d[1]-0=d[1];当i>1时,f[i]=d[i]-d[i-1]。
  2. 差分数组的性质:
    数列第i项的值等于差分数组的前i项的和
d[2]=d[2]+d[1]-d[1]=(d[1])+(d[2]-d[1])=f[1]+f[2])
d[3]=d[1]+d[2]+d[3]-d[1]-d[2]=d[1]+(d[2]-d[1])+(d[3]-d[2])=f[1]+f[2]+f[3]…………
d[n]=f[1]+……+f[n]
  1. 可以用于快速处理区间加减的问题
    比如:如果我们要对数列中区间[L,R]上的数加上x,第一个受影响的差分数组中的元素为f[L],也就是f[L]+=x,最后一个受影响的差分数组中的元素为f[R],也就是f[R+1]-=x,这样就可以不用对区间内每一个数进行处理,只用处理两个差分后的数就可以了;
    如果还不是很看得懂,我们用这道题来分析一下(初始的差分数组f[]的值都等于0)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    代码实现(c++):
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{int n,m,li,ri,ci;cin>>n>>m;int f[n+1]={0};for(int i=0;i<m;i++){cin>>li>>ri>>ci;f[li]+=ci;f[ri+1]-=ci; }for(int i=1;i<n+1;i++){f[i]+=f[i-1]; cout<<f[i]<<' ';}
}

http://chatgpt.dhexx.cn/article/aRleeTV3.shtml

相关文章

漫画:有趣的“分苹果”问题

————— 第二天 ————— 完整题目如下&#xff1a; 我们有1000个苹果&#xff0c;要用10个箱子来进行分装&#xff0c;每个箱子所装的苹果数量不限。 但是这里有一个特殊的要求&#xff1a;当我们想要任意数量&#xff08;从1到1000&#xff09;苹果的时候&#xff0c;…

华为od机考题目-分苹果

A,B两个人把苹果分成两队,A希望按照他的计算规则等分苹果,他的计算规则时按照二进制加法计算的,并且不计算走位 B的计算规则时十进制加法,包括正常进位,B希望在满足A的情况下获得苹果的重量最多,输入苹果的数量和每个苹果的重量,输出满足A的情况下获得苹果的总重量 如果…

【C++】1081:分苹果(信息学奥赛)

好了&#xff0c;今天的内容就是分苹果了&#xff0c;内容的详细意思也就是 把一堆苹果分给n个小朋友&#xff0c;要使每个人都能拿到苹果&#xff0c;而且每个人拿到的苹果数都不同的话&#xff0c;这堆苹果至少应该有多少个&#xff1f;&#xff08;博主正在冲200粉丝&#…

分苹果问题

问题&#xff1a;现有1000个苹果&#xff0c;10个盒子&#xff0c;现在要你将1000个苹果装入10个盒子中&#xff0c;使得用户无论购买多少个苹果&#xff08;1到1000&#xff09;&#xff0c;都能由若干个盒子拼装而成&#xff08;卖的时候是整个盒子卖&#xff0c;不能拆盒子的…

【1081】分苹果

1081&#xff1a;分苹果 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 30677 通过数: 26393 【题目描述】 把一堆苹果分给n个小朋友&#xff0c;要使每个人都能拿到苹果&#xff0c;而且每个人拿到的苹果数都不同的话&#xff0c;这堆苹果至少应该有多少个&…

分苹果java

蓝桥杯算法提高VIP-分苹果 题目描述 小朋友排成一排&#xff0c;老师给他们分苹果。 小朋友从左到右标号1..N。有M个老师&#xff0c;每次第i个老师会给第Li个到第Ri个&#xff0c;一共Ri-Li1个小朋友每人发Ci个苹果。 最后老师想知道每个小朋友有多少苹果。 输入格式 第…

分苹果(C语言实现)

1、题目描述 果园里有堆苹果&#xff0c;N&#xff08;1&#xff1c;N&#xff1c;9&#xff09;只熊来分。第一只熊把这堆苹果平均分为N份&#xff0c;多了一个&#xff0c;它把多的一个扔了&#xff0c;拿走了一份。第二只熊把剩下的苹果又平均分成N份&#xff0c;又多了一个…

小习题:巧分苹果

一.题目概要&#xff1a; 一家农户以果园为生&#xff0c;一天&#xff0c;父亲推出一车苹果&#xff0c; 共2520个&#xff0c;准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆苹果分完&#xff0c;每个人分到的苹果个数都不相同。他说:“老大&#xff0c;把你分到的…

HTML制作简单的页面

一.HTML页面制作代码部分 <html><head><meta charset"utf-8"><title>Music Login Form</title><!--css代码声明--><style type"text/css">//div的设置#showdiv{width: 450px;height: 530px;border: solid 2px …

简单网页制作

开发工具与关键技术&#xff1a;DW 作者&#xff1a;罗文智 撰写时间&#xff1a;2021/10/10 1.打开 Adobe Dreamweaver 2021&#xff0c;CtrlN使用快捷键&#xff0c;创建一个HEML文件 2.第二步在内容部分输入video&#xff0c;按下会自动生成导入视频标签&#xff0c;在src…

HTML制作个简单的网页

超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 注意&#xff…

用HTML做一个简单漂亮的页面

HTML部分&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatibl…

Java Web-1 制作简单的网页

制作简单的网页 一、网页主要功能二、涉及到的知识点三、搭建步骤1. 首先打开mysql数据库&#xff0c;新建一个数据库test&#xff0c;然后生成对应的表结构2. 打开Eclipse新建一个web项目3. 在webroot下的WEB-INF下的lib中导入mysql和tomcat的驱动jar包4. 建立对应的包结构5. …

Js制作简单的网页

&#xfeff;&#xfeff; 一个简易的纯JS的CRM管理系统 1 概述 这是一个综合的JS开发的管理系统&#xff0c;仅有基本功能&#xff0c;大约1500行代码&#xff0c;使用本地的数据localStorage作为临时测试数据的存储&#xff0c;同时用到了sessionStorage作为用户登陆信息的存…

简易的HTML网页设计

前言&#xff1a; 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解…

如何制作一个简单的网页

先创建一个文本文档&#xff0c;将后缀名改为“html” 然后右击这个&#xff0c;选择打开方式&#xff0c;用记事本打开 开头与结尾要用<html>来写&#xff0c;后一个要加“/” 头部用head&#xff0c;中间部分用body。 背景颜色用bgcolor"填一种颜色" 字体…

web前端简易网页制作

简易旅游网&#xff0c;静态网页制作 页面效果 代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewp…

一个简单的网页设计HTML5作业

前言&#xff1a; HTML5是Web中核心语言HTML的规范&#xff0c;用户使用任何手段进行网页浏览时看到的内容原本都是HTML格式的&#xff0c;在浏览器中通过一些技术处理将其转换成为了可识别的信息。HTML5在从前HTML4.01的基础上进行了一定的改进&#xff0c;虽然技术人员在开发…

HTML——简单的网站首页

学习记录帖(一) 简单的网站首页 这是我的一个记录帖,我是按照黑马程序员的视频学习的。 使用的是HBuilder,学习了html & css & js & jq & bootstrap。 成果 代码 <!DOCTYPE html> <html><head><meta charset="UTF-8"&g…

自己动手设计一个简单的HTML网页

目录 HTML介绍 HTML难不难&#xff1f; HTML重要吗&#xff1f; 示例网页 网页显示效果 写在最后 HTML介绍 HTML是英文单词&#xff08;HyperText Markup Language&#xff09;的缩写&#xff0c;也就是超文本标记语言&#xff0c;之所以称之为超文本&#xff0c;那是因…