Fenwick Tree——树状数组

问题陈述:
你得到一个长度为 N 的数组为 a0,a1,a2……an-1。处理以下类型的查询,一共有 Q 次查询。

0 p x : ap⬅ap + x
1 l r : 打印  \sum_{l}^{r-1}ai  ( i=l 到 i=r-1 的 ai 之和)

约束:
1 ≤ N,Q ≤ 500000
0 ≤ ai,x ≤ 1e9
0 ≤ p < N
0 ≤ li < ri ≤ N
输入中的所有值都是整数

输入
输入由标准输入以以下格式给出:
N Q
a0 a1 ……an-1
Query0
Query1
.
.
QueryQ-1

输出
对于后一种类型的每个查询,打印答案。

Input
5 5
1 2 3 4 5
1 0 5
1 2 4
0 3 10
1 0 5
1 0 3

Output
15
7
25
6

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pair<int,int> PII;
const double PI=acos(-1.0);
const int N=2e6+10;
int a[N],tr1[N],tr2[N];
int n,m;
int lowbit(int x)
{
    return x&-x;
}
void add(int tr[],int x,int c)
{
    for (int i=x;i<=n;i +=lowbit(i)) tr[i] +=c;
}
int sum(int tr[],int x)
{
    int ans=0;
    for (int i=x;i>0;i -=lowbit(i)) ans +=tr[i];
    return ans;
}
int is_sum(int x)
{
    return sum(tr1,x)*(x+1)-sum(tr2,x);
}
signed main()
{
    ios;
    cin>>n>>m;
    for (int i=1;i<=n;i++) cin>>a[i];
    for (int i=1;i<=n;i++)
    {
        int b=a[i]-a[i-1];
        add(tr1,i,b),add(tr2,i,i*b);
    }
    int s;
    while (m--)
    {
        cin>>s;
        if (s==0)
        {
            int l,c;
            cin>>l>>c;
            l++;
            add(tr1,l,c),add(tr1,l+1,-c);
            add(tr2,l,l*c),add(tr2,l+1,(l+1)*-c);
        }
        else 
        {
            int l,r;
            cin>>l>>r;
            l++,r++;
            cout<<is_sum(r-1)-is_sum(l-1)<<endl;
        }
    }
    return 0;
}


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法训练营Day43(完全背包[组合排列])

完全背包理论 正序遍历&#xff0c;先背包先物品都可以&#xff0c; 正序遍历的话&#xff0c;之前的物品价值还在&#xff0c;可以用上。 物品和背包都是有前面推出来&#xff0c;都可以。 但是其他的非纯理论的完全背包问题就要看场景&#xff0c;确定先背包还是先物品了 //先…

Google Pixel 与 iPhone手机:哪个更好?

iPhone稳定可靠&#xff0c;Pixel性价比高且创新。两者各有千秋&#xff0c;满足不同需求 谷歌的 Pixel 手机是 Android 最接近 iPhone 的手机&#xff0c;也是真正原生的Android手机。在iPhone 15 Pro Max 与华为 Mate 60 Pro的比较中不难看出&#xff0c;iPhone依然有着极强…

SAP 获取物料/批次/订单的特性值(学习一)

1、事务码 MSC1N、MSC2N、MSC3N 2、常用表 MCH1、MCHA、AUSP、MCH*开头的几个 3、批次 1、创建批次 BAPI&#xff1a;BAPI_BATCH_CREATE 2、修改批次 BAPI&#xff1a;BAPI_BATCH_CHANGE 3、删除批次 BAPI&#xff1a;BAPI_BATCH_DELETE 4、获取批次明细 BAPI&…

vpp node 及 vpp 多线程

node 注册 node注册&#xff0c;即宏VLIB_REGISTER_NODE(x, ...)流程&#xff1a; 创建vlib_node_registration_t x&#xff1b;vlib_node_registration_t结构只是存放了用户提供的node相关信息。把x添加到全局变量vlib_global_main中的node_registrations链表中&#xff08;…

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生&#xff0c;报错是说没有访问权限&#xff08;跨域问题&#xff09;。本地开发项目请求服务器接口的时候&#xff0c;因为客户端的同源策略&#xff0c;导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况&#xff1a; 可以看到&…

如何在数学建模竞赛中稳定拿奖

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

[三星电子]算法题--两种颜色涂无向图(bfs)

题目 题目描述&#xff1a; 给一无向图中各个节点绘色&#xff0c;一共只有两种颜色&#xff0c;使其满足相邻节点颜色不同&#xff0c;并输出其中一种颜色的节点个数及序号&#xff1b;如果不满足&#xff0c;则输出-1。 示例&#xff1a; 第一行输入节点个数V和边数E&…

数字信号处理实验---Z变换及系统的零极点分析 Matlab代码

一&#xff0e;各种函数的用法 1.tf2zp函数&#xff1a;通常用于将传递函数&#xff08;Transfer Function&#xff09;转换为零极增益形式&#xff08;ZPK form&#xff09;&#xff0c;转换前G(s) num(s) / den(s)&#xff0c;转换后G(s) K * (s - z1) * (s - z2) * ... *…

freeRTOS总结(四)中断管理

1、什么是中断 打断CPU正常运行程序&#xff0c;转而处理紧急的事件&#xff08;中断服务函数&#xff09;。 中断执行机制3步 1、中断请求 2、响应中断 3、退出中断 2 中断优先级 cortex-M使用8位寄存器配置中断优先级 stm32只用到高4位 stm32优先级分为抢占优先级和子优先…

如何测量电源芯片的电压调整率?电源芯片检测系统助力测试

电源芯片电压调整率的测试方法 测试环境&#xff1a; 温度&#xff1a;252℃ 湿度&#xff1a;60%~70% 大气压强&#xff1a;86kPa~106kPa 测试工具&#xff1a;可调电源、可调电子负载、万用表 测试步骤&#xff1a; 1. 设置电子负载&#xff0c;使电源满载输出; 2. 调节电源芯…

LORA的基本原理

本文将介绍如下内容&#xff1a; 什么是Lora高效微调的基本原理LORA的实现方式LORA为何有效&#xff1f; 一、什么是LoRA LoRA 通常是指低秩分解&#xff08;Low-Rank Decomposition&#xff09;算法&#xff0c;是一种低资源微调大模型方法&#xff0c;论文如下: LoRA: Low…

深入理解计算机系统(1):开始

计算机系统是由硬件和系统软件组成的&#xff0c;它们共同工作来运行应用程序。虽然系统的具体实现方式随着时间不断变化&#xff0c;但是系统内在的概念却没有改变。所有计算机系统都有相似的硬件和软件组件&#xff0c;它们又执行着相似的功能。 计算机系统 信息就是位上下…

C++I/O流——(1)I/O流的概念

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 勤奋&#xff0c;机会&#xff0c;乐观…

Nginx配置反向代理实例二

Mac 安装Nginx教程 Nginx配置反向代理实例一 提醒一下&#xff1a;下面实例讲解是在Mac系统演示的&#xff1b; 反向代理实例二实现的效果 使用nginx 反向代理&#xff0c;根据访问的地址跳转到不同端口的服务中 nginx 监听端口为81&#xff1b; 访问地址1&#xff1a;http:/…

QTday4作业

思维导图: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimerEvent> #include <QPushButton> #include <QTextToSpeech> #include <QDebug>namespace Ui { class Widget; }class Widget…

实现稳定的联合显著性检测和联合目标分割

1 Title Toward Stable Co-Saliency Detection and Object Co-Segmentation(Bo Li; Lv Tang; Senyun Kuang; Mofei Song; Shouhong Ding)【IEEE Transactions on Image Processing 2022】 2 Conclusion This paper present a novel model for simultaneous stable co-saliency…

数据分析讲课笔记01:数据分析概述

文章目录 零、学习目标一、本次课程概述二、数据分析的背景&#xff08;一&#xff09;进入大数据时代&#xff08;二&#xff09;数据分析的作用 三、什么是数据分析&#xff08;一&#xff09;数据分析的概念&#xff08;二&#xff09;数据分析的分类1、描述性数据分析2、探…

公网环境使用移动端设备+cpolar远程访问本地群晖nas上的影视资源

文章目录 1.使用环境要求&#xff1a;2.下载群晖videostation&#xff1a;3.公网访问本地群晖videostation中的电影&#xff1a;4.公网条件下使用电脑浏览器访问本地群晖video station5.公网条件下使用移动端&#xff08;搭载安卓&#xff0c;ios&#xff0c;ipados等系统的设备…

WiFi7无线路由器TL-7DR6560简单开箱测评

TPLINK/普联 TL-7DR6560易展Turbo版 BE6500 双频WiFi7无线路由器简单开箱测评&#xff0c;4个2.5G网口&#xff0c;6颗独立FEM&#xff0c;双频6流。 TP-LINK XDR6088 WiFi6路由器 简单开箱评测&#xff1a;https://blog.zeruns.tech/archives/731.html 分享一下我家网络机柜…

Macos下修改Python版本

MacOS下修改Python版本 安装 查看本机已安装的Python版本&#xff1a;where python3 ~ where python3 /usr/bin/python3 /usr/local/bin/python3 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3如果没有你想要的版本&#xff0c;去python官网下载安装包。…