树状数组基础知识

news/2024/7/7 20:51:37 标签: 算法, 数据结构, 树状数组

lowbit:

lowbit(x)=x&(-x)

树状数组

树状数组的功能:

数组a_{1} a_{2} a_{3} a_{4} a_{5}...a_{n}

在O(1)的时间复杂度实现单点加:a_{i}+d

在O(lng n)的时间复杂度实现查询前缀和:\sum_{1}^{x}ai

树状数组的定义:
c_{i}=\sum_{i-lowbit(i)+1}^{i} a_{i}

查询前x项的和操作:

ll query(int x){
  ll s=0;
  for( ; x; x-=x&(-x)){
    s+=c[x];
  }
  return s;
}

单点加操作:

//原数组长度为n
void modify(int x,ll s){
  for(;x<=n;x+=x&(-x)){
    c[x]+=s;
  }
    //如果需要别忘了把元素组对应的一位也进行变换
}

构造一个树状数组

//原数组长度为n
scanf("%d",&n);
  for(int i=1;i<=n;i++){
    scanf("%d",a+i);
    modify(i,a[i]);
  }

在输入元素的每一位时对应的在树状数组的位置加上该值。


http://www.niftyadmin.cn/n/5535182.html

相关文章

Lumion专业3D渲染三维场景设计软件下载,Lumion强大的三维渲染软件

Lumion&#xff0c;这款软件具备令人瞩目的渲染速度&#xff0c;能够以闪电般的速度生成令人叹为观止的图像、视频和360全景图&#xff0c;让设计师们能够在短时间内将创意转化为视觉盛宴。 Lumion软件内置了一系列可定制的预先配置的HDR天空环境&#xff0c;这些天空环境不仅丰…

【人工智能学习之图像操作(一)】

【人工智能学习之图像操作&#xff08;一&#xff09;】 图像读写创建图片并保存视频读取色彩空间与转换色彩空间的转换通道分离理解HSV基本图形绘制 阀值操作OTSU二值化简单阀值自适应阀值 图像读写 图像的读取、显示与保存 import cv2 img cv2.imread(r"1.jpg")…

云桌面运维工程师

一 深信服驻场工程师 1 深信服AC、AF、AD、NGAF、WOC Atrust、WAF项目实施经验者优先考虑。 负责云桌面POC测试 部署和配置&#xff1a;设置云桌面基础设施&#xff0c;包括虚拟化平台、云桌面管理软件和相关组件。确保正确配置网络、存储和安全设置。 用户体验&#xff1…

VSCode 自动调整格式失效了 ESLint

ESLint【最新注意2.4.4版本有问题&#xff0c;需退回2.4.2版本就恢复正常了】 参考&#xff1a;vscode自动格式化失效_vscode保存自动格式化失效-CSDN博客

error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04&#xff0c;OpenCV 4.2.0 一、问题描述 编译 OpenCV 的程序时&#xff0c;出现如下报错 error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope二、解决…

使用Go语言编写一个简单的SSH爆破工具

使用Go语言编写一个简单的SSH爆破工具&#xff0c;但请注意&#xff0c;这个工具仅供学习和合法测试使用&#xff0c;不要用于任何非法目的。 以下是一个简单的Go程序示例&#xff0c;它尝试使用从文件中读取的用户名和密码来登录SSH服务器&#xff1a; package mainimport (…

Cesium与Three相机同步(3)

Cesium与Three融合的案例demo <!DOCTYPE html> <html lang"en" class"dark"><head><meta charset"UTF-8"><link rel"icon" href"/favicon.ico"><meta name"viewport" content&q…

Windows 11 安装 安卓子系统 (WSA)

How to Install Windows Subsystem for Android (WSA) on Windows 11 新手教程&#xff1a;如何安装Windows 11 安卓子系统 说明 Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机&#xff0c;可在 Windows 11 操作系统上运行 Android 应用程序。虽然它需…