P3374 【模板】树状数组 1

题目描述

如题,已知一个数列,你需要进行下面两种操作:

  • 将某一个数加上 𝑥x

  • 求出某区间每一个数的和

输入格式

第一行包含两个正整数 𝑛,𝑚n,m,分别表示该数列数字的个数和操作的总个数。

第二行包含 𝑛n 个用空格分隔的整数,其中第 𝑖i 个数字表示数列第 𝑖i 项的初始值。

接下来 𝑚m 行每行包含 33 个整数,表示一个操作,具体如下:

  • 1 x k 含义:将第 𝑥x 个数加上 𝑘k

  • 2 x y 含义:输出区间 [𝑥,𝑦][x,y] 内每个数的和

输出格式

输出包含若干行整数,即为所有操作 22 的结果。

输入输出样例

输入 #1复制

5 5
1 5 4 2 3
1 1 3
2 2 5
1 3 -1
1 4 2
2 1 4

输出 #1复制

14
16

说明/提示

【数据范围】

对于 30%30% 的数据,1≤𝑛≤81≤n≤8,1≤𝑚≤101≤m≤10;
对于 70%70% 的数据,1≤𝑛,𝑚≤1041≤n,m≤104;
对于 100%100% 的数据,1≤𝑛,𝑚≤5×1051≤n,m≤5×105。

数据保证对于任意时刻,𝑎a 的任意子区间(包括长度为 11 和 𝑛n 的子区间)和均在 [−231,231)[−231,231) 范围内。

样例说明:

故输出结果14、16

1.首先想到的做法

一看到区间加数和求区间段的和,本能的第一反应就是用差分和前缀和,甚至不用差分,因为它只要在一个数加1即可,只要前缀和处理,但是题目给的询问会在某个点加了数后再求区间和,这样就导致了每一次求区间和的时候都要去求一次前缀和这样就导致了时间复杂度爆了,为5e5*5e5,直接导致有三个点因为超时没法过去。有没有不超时的办法呢?有,就是线段树。

2.

线段数可以做到两种操作都为O(longN),大大减少时间复杂度。

线段数主要分为构造树,某个点加数,求区间和。

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<vector>
#include<math.h>
#include<iomanip>
#include<set>
#include<queue>
#include<stack> 
#include<map>
#include<list>
#include <stdlib.h>
#include<deque>
#include <stdlib.h>
#include <time.h>
#include<cstdlib>
using namespace std;
int n, m, a[500005], f[2000005];//f为线段数
void buildtree(int k,int l,int r)//k是当前线段的编号,l到r为这一区间
{if (l == r)//到最底层{f[k] = a[l];return;}int m = (l + r) / 2;buildtree(k + k, l, m);//左子树buildtree(k + k + 1, m + 1, r);//右子树f[k] = f[k + k] + f[k + k + 1];//当前节点的和
}
void add(int k, int l, int r, int x, int y)//在x处加y
{f[k] = f[k] + y;//牵一发而动全身,x之上的都要加if (l == r)//叶子节点返回{return;}int m = (l + r) / 2;if (m >= x){add(k + k, l, m, x, y);}else{add(k + k + 1, m + 1, r, x, y);}
}
int getsum(int k,int l,int r,int s,int t)
{if (l == s && r == t){return f[k];}int m = (l + r) / 2;if (m >= t){return getsum(k + k, l, m,s,t);}else if (m < s){return getsum(k + k + 1, m + 1, r, s, t);}else{return getsum(k + k, l, m, s, m) + getsum(k + k + 1, m + 1, r, m+1, t);}
}
int main()
{cin >> n >> m;for (int i = 1; i <= n; i++){cin >> a[i];}buildtree(1, 1, n);for (int i = 1; i <= m; i++){int t, x, y;cin >> t >> x >> y;if (t == 1){add(1, 1, n, x, y);}if (t == 2){cout << getsum(1, 1, n, x, y) << endl;}}
}

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

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

相关文章

<sa8650>sa8650 qcxserver-之-摄像头传感器VB56G4A驱动开发<1>

<sa8650>sa8650 qcxserver-之-摄像头传感器VB56G4A驱动开发 <1> 一、前言二、QCX架构三、QCX 传感器驱动程序定制开发3.1 sensor硬件接口3.2 sensor配置文件3.2.1 cameraconfig.c3.2.2 cameraconfigsa8650_water.c3.2.3 新增编译MK3.2.4 参数解析3.2.4.1 struct Camera…

干式电抗器的工作原理是什么

干式电抗器是电力系统中常用的无功补偿设备&#xff0c;主要用于调节电网的电压、提高功率因数、限制短路电流等。它的工作原理主要是通过在电路中引入一个与负载电流相反的磁场&#xff0c;从而产生一个与负载电流相抵消的电抗力&#xff0c;达到调节电压和功率因数的目的。 干…

常微分方程算法之编程示例十-两点狄利克雷边值问题(理查德森外推法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用理查德森法对示例八中的两点狄利克雷边值问题进行外推求解,相应的原理及推导思路请参考: 常微分方程算法之高精度算法(Richardson法+紧差分法)_richardson外推法-CSDN博客https://blog.csdn.net/…

20_系统测试与维护

目录 测试基础知识 测试原则 动态测试 静态测试 测试策略 测试阶段 测试用例设计 黑盒测试用例设计 白盒测试用例设计 McCabe度量法 鲁棒性测试 缺陷探测率(Defect Detection Percentage,DDP) 调试 系统维护基础 系统转换 系统维护指标 软件容错技术 嵌入式安…

【AI 大模型训练数据白皮书 2024】

文末有福利&#xff01; 自《中共中央国务院关于构建数据基础制度更好发挥数据要素作用的意见》发布以来&#xff0c;我国数据要素建设不断深入&#xff0c;在国家数据局等 17 部门联合印发的《“数据要素 ” 三年行动计划&#xff08;2024 - 2026 年&#xff09;》进一步明确…

z-index的工作原理

z-index的工作原理 HTML文档中的元素却是存在于三个维度之中。除了大家熟知的平面画布中的x轴和y轴&#xff0c;还有控制第三维度的z轴。 像 margin , float , offset 这些属性&#xff0c;控制着元素在x轴和y轴上的表现形式一样。 z-index 这个属性控制着元素在z轴上的表现形…

不使用AMap.DistrictSearch,通过poi数据绘制省市县区块

个人申请高德地图key时无法使用AMap.DistrictSearch&#xff0c;可以通过poi数据绘制省市县区块 1.进入POI数据网站找到需要的省市县&#xff0c;下载对应的GeoJson文件 &#xff0c;此处为poi数据网站链接 2.​ 处理geoJson数据&#xff0c;可以直接新建json文件&#xff0c;…

FIPS PUB 196 ENTITY AUTHENTICATION USING PUBLIC KEY CRYPTOGRAPHY

部分原文 3.3 Mutual authentication protocol The following mutual entity authentication protocol is based on Section 522. “Three pass authentication”, ofISO/IEC 9798-3. Certain authentication token fields and protocol steps are specified in greater deta…

【机器学习】在【Pycharm】中的实践教程:使用【逻辑回归模型】进行【乳腺癌检测】

目录 案例背景 具体问题 1. 环境准备 小李的理解 知识点 2. 数据准备 2.1 导入必要的库和数据集 小李的理解 知识点 2.2 数据集基本信息 小李的理解 知识点 注意事项 3. 数据预处理 3.1 划分训练集和测试集 小李的理解 知识点 注意事项 3.2 数据标准化 小李…

controller不同的后端路径对应vue前端传递数据发送请求的方式,vue请求参数 param 与data 如何对应后端参数

目录 案例一&#xff1a; 为什么使用post发送请求&#xff0c;参数依旧会被拼接带url上呢&#xff1f;这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后&#xff0c;data会以请求体传递 补充&#xff1a;后端controller 参数上如果没写任何注解&#xff0c…

第一后裔进不去游戏怎么办 第一后裔免费加速器推荐

Steam年度最热心愿榜单第五的游戏终于上线了&#xff0c;包好玩的新游&#xff0c;第一后裔&#xff0c;为什么说他肯定好玩呢&#xff1f;因为游戏第一次测试在两年前就开始了&#xff0c;中间也断断续续测试了好多次&#xff0c;很多小伙伴都是体验过游戏的&#xff0c;经过多…

【硬件模块】PN532 NFC读卡串口通信

PN532 PN532是一款功能丰富的非接触式通讯收发模块&#xff0c;其基于8051单片机核心&#xff0c;集成了多种通信接口和工作模式&#xff0c;以满足不同应用场景的需求。以下是PN532功能相关的详细介绍&#xff1a; 多种通信接口&#xff1a;PN532支持I2C、SPI和UART&#xff0…

MySQL的安装和环境配置

1.下载MySQL安装MySQL 选Custom选项为高级自定义模式 2.配置MySQL环境 安装好之后&#xff0c;在桌面右键点击我的电脑(有些是此电脑)&#xff0c;然后点击属性&#xff0c;进入系统信息设置&#xff0c;接着点击高级&#xff0c;进入环境变量界面&#xff0c;进入环境变量界面…

【Spring Boot】Java 持久层 API:JPA

Java 持久层 API&#xff1a;JPA 1.Spring Data1.1 主要模块1.2 社区模块 2.JPA3.使用 JPA3.1 添加 JPA 和 MySQL 数据库的依赖3.2 配置数据库连接信息 4.了解 JPA 注解和属性4.1 常用注解4.2 映射关系的注解4.3 映射关系的属性 5.用 JPA 构建实体数据表 1.Spring Data Spring…

Redis基础教程(十):HyperLogLog

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

Linux爱好者能对Linux痴迷到什么程度?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;曾经想帮助全世界的人卸载掉…

技术职务管理助力智慧校园建设:深入解读人事系统

智慧校园人事系统中的技术职务管理模块&#xff0c;专注于高校及教育机构内技术人员及科研人员的职务管理&#xff0c;涵盖职称评审、技术职务任命、项目参与记录、科研成果跟踪及技术能力评估等多个方面&#xff0c;旨在通过信息化手段提升技术人才管理的效率与科学性。 在这一…

Windows如何安装并启动Nginx

0、前言 Nginx 是一款高性能、轻量级的Web服务器和反向代理服务器&#xff0c;广泛应用于互联网领域。它以其高效稳定、内存占用少和丰富的模块化设计而受到开发者们的青睐。 在实际使用过程中&#xff0c;我们多数时候会在Linux系统上运行Nginx&#xff0c;但实际上&#xff…

单目行车测距摄像系统(单目测距-行车)

单目行车测距摄像系统是一种利用单个摄像头实现车辆行驶中前方障碍物距离测量的技术。该系统通过计算机视觉算法&#xff0c;能够实时分析摄像头捕捉的图像&#xff0c;精确计算出车辆与前方物体之间的距离&#xff0c;对于自动驾驶、高级驾驶辅助系统&#xff08;ADAS&#xf…

24年hvv不要掉进秘网了,特别别被反制了

这两年的hvv&#xff0c;防守方已经不单单是每天坐那看监控、封ip了&#xff0c;越来越多的大佬投身防守工作中&#xff0c;让防守从被动变成了一个主动的活了。 目前最常见的主动防守有2种&#xff0c;1、长时间的蜜罐运营。2、蜜罐反制。 01-蜜罐运营 蜜罐这个词干安全的都…