语文成绩(洛谷)

题目

原题

题目背景

语文考试结束了,成绩还是一如既往地有问题。

题目描述

语文老师总是写错成绩,所以当她修改成绩的时候,总是累得不行。她总是要一遍遍地给某些同学增加分数,又要注意最低分是多少。你能帮帮她吗?

输入格式

第一行有两个整数 n n n p p p,代表学生数与增加分数的次数。

第二行有 n n n 个数, a 1 ∼ a n a_1 \sim a_n a1an,代表各个学生的初始成绩。

接下来 p p p 行,每行有三个数, x x x y y y z z z,代表给第 x x x 个到第 y y y 个学生每人增加 z z z 分。

输出格式

输出仅一行,代表更改分数后,全班的最低分。

样例 #1

样例输入 #1


3 2 1 1 1 1 2 1 2 3 1

样例输出 #1

2

提示

对于 40 % 40\% 40% 的数据,有 n ≤ 1 0 3 n \le 10^3 n103

对于 60 % 60\% 60% 的数据,有 n ≤ 1 0 4 n \le 10^4 n104

对于 80 % 80\% 80% 的数据,有 n ≤ 1 0 5 n \le 10^5 n105

对于 100 % 100\% 100% 的数据,有 n ≤ 5 × 1 0 6 n \le 5\times 10^6 n5×106 p ≤ n p \le n pn,学生初始成绩 $ \le 100 , , z
\le 100$。

思路

这里的思路是差分。因为直接模拟的话时间会爆。
离散化操作就是生成一个新的数组。每个元素都是由原数组当前位置减去元素组上一个位置得到( b [ i ] = a [ i ] − a [ i − 1 ] b[i]=a[i]-a[i-1] b[i]=a[i]a[i1])。特别的新的数组第一个元素就是其本身因为第一个元素前面没有元素。新的数组的前缀和得到的就是原数组。
例如新数组第一个元素和第二个元素相加,第二个元素是第二个和第一个元素的差值,这个差值加上第一个元素原数组第一个元素很明显就是等于第二元素本身,而新数组里第一个元素和原数组第一个元素恰好相等。同理新数组第三个元素是原数组第三个和第二个元素差值。而新数组第一个和第二个元素相加等于原第二元素,这样第一二三个元素相加就是等于原数组第三个元素。这就是前缀和等于原数组。
这里的新数组有什么好处呢。好处在于在新数组上任意位置加上某个数,该位置后面元素全会加上这个数。在上面例子中如果在第二个位置减去1,那么根据前缀和计算出来的第二个元素会比原数组小1,而第三个元素也需要加上第二个元素,也就是说第三个元素也会比原数组第三个元素小于1.如果后面还有元素又会继续小1。
那如果希望某个区间加上某个值,这里只需要在右界减去同一个值。这样右边超过区域的位置原本加上的值就会被这个减去的值抵消。这样可以大大减少时间消耗。因为改一个区域只需要改元素两个位置。如果是直接模拟区间一旦变大就会消耗大量时间。

代码

#include<iostream>
using namespace std;
int d[5000001];
int de[5000001];
int main(){int m,n;cin>>n>>m;for(int i=1;i<=n;i++){cin>>d[i];de[i]=d[i]-d[i-1];}int x,y,z;for(int j=1;j<=m;j++){cin>>x>>y>>z;de[x]+=z;			//左边界加zde[y+1]-=z;			//右边界减z}int mins=9999999;for(int i=1;i<=n;i++){	//前缀和还原数组d[i]=de[i]+d[i-1];if(d[i]<mins)mins=d[i];}cout<<mins;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【springboot】 `@Column` 注解的使用

定义一个实体的属性时&#xff0c;如果和数据库的列名不一致的时候&#xff0c;需要用column 建立映射关系。 Column 是 Java 持久化 API&#xff08;Java Persistence API&#xff0c;JPA&#xff09;中的注解之一&#xff0c;用于指定实体类中属性与数据库表中列的映射关系。…

2024牛客(4)K题

登录—专业IT笔试面试备考平台_牛客网 using i64 long long; using ll long long; constexpr ll M 1e9 7; template<class Info> struct SegmentTree {int n;std::vector<Info> info;SegmentTree() : n(0) {}SegmentTree(int n_, Info v_ Info()) {init(n_, …

Vue样式绑定

1. 绑定 HTML class ①通过class名称的bool值判断样式是否被启用 <template><!--通过样式名称是否显示控制样式--><div :class"{ haveBorder: p.isBorder, haveBackground-color: p.isBackgroundcolor }">此处是样式展示区域</div><br /…

Linux篇:开发工具yum/vim/gcc/g++/Makefile/gdb

一. yum&#xff1a;软件包管理器 什么是软件包&#xff1f; 在Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好 , 做成软件包 (可以理解成windows 上的安装程序) 放在…

Linux C++ 字符编码转换 GBK与UTF8互转

Linux 下使用 iconv 命令可以转换文件的编码 iconv -f GBK -t UTF-8 input_file -o output_fileC 代码 使用 iconv 函数 iconv 函数签名&#xff1a; size_t iconv(iconv_t cd,、 char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); 需要注意的是&…

Python基础20 面向对象(3)多态、封装、反射

文章目录 一、多态1、什么是多态2、多态小实验 二、封装1、什么是封装2、内部属性的约定 三、反射1、什么是反射2、四个实现自省的函数&#xff08;1&#xff09;hasattr(object,name)&#xff08;2&#xff09;getattr(object,name,defaultNone)&#xff08;3&#xff09;seta…

神秘人暗访:行政窗口为什么要开展神秘顾客调研

在竞争日益激烈的服务市场中&#xff0c;行政窗口作为公共服务的直接提供者&#xff0c;其服务质量的好坏直接关系到政府的形象和公众对政府的信任度。为了更好地满足市民的需求&#xff0c;提升服务质量&#xff0c;开展神秘顾客调查显得尤为重要。神秘顾客调查的必要性包括以…

内网穿透的应用-如何本地部署Elasticsearch搜索分析引擎实现并发布公网远程访问

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎&#xff0c;它提供了一个分布式、多…

探索Flask框架:打造优雅而强大的Web应用

在当今互联网时代&#xff0c;Web应用的需求日益增长&#xff0c;而作为开发者&#xff0c;我们需要一个简洁明快、灵活可扩展的框架来满足这些需求。Flask框架作为一个Python微型框架&#xff0c;在其简洁的设计理念和丰富的扩展生态系统之间找到了完美的平衡&#xff0c;为我…

洛谷--二分(Java实现)

洛谷 B3627 立方根 题目描述 给定正整数 n&#xff0c;求 √n​。答案向下取整。 输入格式 仅一行&#xff0c;一个正整数 n。 输出格式 仅一行&#xff0c;一个正整数&#xff0c;表示√n。向下取整输出。 输入输出样例 输入 #1 27 输出 #1 3 输入 #2 100000 输…

ORACLE之 decode函数

语法&#xff1a; DECODE(expression, search1, result1, search2, result2, ..., default_result) 其中&#xff0c;expression是要进行比较的表达式&#xff0c;search1, search2等是可能的值&#xff0c;result1, result2等是对应的结果。如果expression等于search1&#x…

Java类的成员、继承、多态

当谈论Java类的成员、继承和多态时&#xff0c;我们谈论的是面向对象编程的基本概念。让我逐一介绍&#xff1a; 1. **成员**&#xff1a; - **字段&#xff08;Field&#xff09;**&#xff1a;也称为属性或变量&#xff0c;用于存储对象的状态信息。 - **方法&#xf…

防御保护第六次作业

需求: 8&#xff0c;分公司内部的客户端可以通过域名访问到内部的服务器 9&#xff0c;假设内网用户需要通过外网的web服务器和pop3邮件服务器下载文件和邮件&#xff0c;内网的FTP服务器也需要接受外网用户上传的文件。针对该场景进行防病毒的防护。 10&#xff0c;我们需要针…

C++模板从入门到入土

1. 泛型编程 如果我们需要实现一个不同类型的交换函数&#xff0c;如果是学的C语言&#xff0c;你要交换哪些类型&#xff0c;不同的类型就需要重新写一个来实现&#xff0c;所以这是很麻烦的&#xff0c;虽然可以cv一下&#xff0c;有了模板就可以减轻负担。 下面写一个适…

日常leetcode代码思路总结(持续更新)

日常leetcode代码思路总结&#xff08;持续更新&#xff09; 难易leecode题号题目描述思路简单121. 买卖股票的最佳时机只准一次买卖0表示持有&#xff0c;1表示不持有&#xff1b;dp[0][i] max(dp[0][i-1], -prices[i])&#xff1b;dp[1][i] max(dp[1][i-1], dp[0][i] pric…

Openwrt删除内核patch

环境说明 ubuntu-18.04 openwrt-21.02 安装quilt sudo apt install quilt quilt指令说明 Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ...quilt --version Commands are:add fold mail refresh snapshotannotate fork new rem…

基于springboot+vue的中小企业设备管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

H 桥逆变方式介绍(双极性)

单极性控制和双极性控制是说IGBT四个管子的控制 前面所说的单极性控制是其中一个管子开通、关闭另外一个管子持续开通 而双极性是四个管子中的两个管子同时导通&#xff0c;同时关断。彼此交替变化 所以当方波出现低电平时&#xff0c;是一对管子同时导通&#xff0c;出现高电…

2.21 Qt day2 菜单栏/工具栏/状态栏/浮动窗口、UI界面、信号与槽

思维导图 使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;…

成像光谱遥感技术中的AI革命:ChatGPT应用指南

“成像光谱遥感技术中的人工智能革命&#xff1a;ChatGPT应用指南”&#xff0c;这是一门旨在改变您使用人工智能处理遥感数据的方式。将最新的人工智能技术与实际的遥感应用相结合&#xff0c;提供不仅是理论上的&#xff0c;而且是适用和可靠的工具和方法。无论你是经验丰富的…