Tido 习题-二叉树-树状数组实现
2024-10-21 03:39:18
题目描述
这就是一个简单的树状数组入门题
可以动态地进行区间和查询
随时可能会进行更新
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
int C[];
int n,m;
int lowbit(int x){
return x&(-x);
}
void add(int x,int d){
while(x<=n){
C[x]+=d;
x+=lowbit(x);
}//修改是从左往右
}
int sum(int x){
int ret=;
while(x>){
ret+=C[x];
x-=lowbit(x);//求和是从右往左
}
return ret;
}
int main()
{ cin>>n>>m;
for(int i=;i<=n;i++) {
int x;
cin>>x;
add(i,x);
}
for(int i=;i<=m;i++){
int k,a,b;
cin>>k>>a>>b;
if(k==)
add(a,b);
if(k==)
cout<<sum(b)-sum(a-)<<endl;
}
return ;
}
如果对树状数组的一些基础知识还不太了解
可以先看一下https://www.cnblogs.com/Tidoblogs/p/10887644.html
最新文章
- Apache Server Status主机状态查看
- Buzz words
- EventBus的使用,数据传递
- C关键字
- WPF xmal绑定数据,当显示数据过长用省略号代替的方法
- jenkins 重新设置 管理员密码
- javascript中,数组常用的方法有哪些?
- python一些模块的exe安装包在windows的64位系统里识别不到已安装Python目录的解决方法
- es随想二
- 接口调试之Postman 使用方法详解
- 机器学习 xgboost 笔记
- RF新手常见问题总结
- SQL语句方法语法总结(一)
- 13.vue组件
- ADB工具的使用
- Android之控件与布局,结构知识点,基础完结
- WPF 我的初学必备技能
- uva11383 转化为 二分图匹配
- mvc ---- ajax 提交过来的Json格式如何处理(解析)
- 新机器,分区为NTFS, 安装 Windows XP、Windows Server 2003 时蓝屏问题,修改为 FAT32 即可