下有彩蛋(from https://www.cnblogs.com/wuwangchuxin0924/p/5921130.html)
树状数组的blog写的最好的是这位//https://www.cnblogs.com/wuwangchuxin0924/p/5921130.html//声明一下跟我没有半毛钱关系,我是一个热爱珂学的好孩子
我要说的主要是怎么去学习树状数组,刚开始我也无从下手,但是我想到了一个方法,虽然我不知道怎么实现,但我知道代码的意思和实现的原理,所以我对照他(她)的代码在看着他(她)的图去思考,就懂了。
图就是这张

非常的清晰只要跟着代码走就好了,但我不喜欢他(她)的代码,所以给你们我的代码作为一个参考,你们也可以看他(她)的。
 #include<bits/stdc++.h>
using namespace std;
int n,m,a[],c[];
int lowbit(int x){
return x&(-x);//这个是求末尾零的个数的,因为只要末尾有零的都是2^n次方(n自己代)
}
void add_tree(int x,int y){//和线段树不一样这是一个一个数处理的
while (x<=n){
c[x]+=y;
if (lowbit(x)==) return;//如果后面没有零了,有可能死循环
x+=lowbit(x);//这个就是我说的要对着图看的,因为前面的数不可能再加给更前面的区间所以只要考虑给后面的加
}
}
int sum(int x){//求出1到x区间的和,就是add_tree的逆过程
int ans=;
while (x>){
ans+=c[x];
if (lowbit(x)==) return ans;
x-=lowbit(x);
}
return ans;
}
int main(){
cin>>n>>m;
for (int i=;i<=n;i++) cin>>a[i];
for (int i=;i<=n;i++) add_tree(i,a[i]);
for (int i=;i<=m;i++){
int a,b,c;
cin>>a>>b>>c;
if (a==) add_tree(b,c);
else cout<<sum(c)-sum(b-)<<endl;//因为b这个点也要加所以b-1
}
}
/*
                   _ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I have a dream!A AC deram!!
orz orz orz orz orz orz orz orz orz orz orz
orz orz orz orz orz orz orz orz orz orz orz
orz orz orz orz orz orz orz orz orz orz orz */
这个好

致所以OIer(from https://www.cnblogs.com/wuwangchuxin0924/p/5921130.html)(从不侵权的小宝宝
												

洛谷P3374树状数组1的更多相关文章

  1. 洛谷P3368 树状数组2 树状数组+差分

    正解:树状数组+差分 解题报告: 戳我! 不得不说灵巧真滴是越来越弱了...连模板题都要放上来了QAQ 因为今天考试的T3正解要用到树状数组这才惊觉树状数组掌握得太太太太差了...之前一直靠线段树续着 ...

  2. 洛谷 P3368 树状数组 题解

    题面 本题随便看两眼就知道该题满足了优美的查分性质: 对于在区间[x,y]内操作时,应该将查分数组的第x项和第y+1项进行相反操作: 询问答案时,问第i个数的值就是查分数组的前i项和: 暴力+玄学卡常 ...

  3. 【luogu P3374 树状数组1】 模板

    题目链接:https://www.luogu.org/problemnew/show/P3374 留个坑,以后补上BIT的讲解,先留下板子复习用 #include<iostream> #i ...

  4. P3368 【模板】树状数组 2

    原题链接  https://www.luogu.org/problemnew/show/P3368 这个题和洛谷P3374树状数组1 有些不同,在普通的树状数组上运用了差分的知识.(由于P3374涉及 ...

  5. POJ2155/LNSYOJ113 Matrix【二维树状数组+差分】【做题报告】

    这道题是一个二维树状数组,思路十分神奇,其实还是挺水的 题目描述 给定一个N∗NN∗N的矩阵AA,其中矩阵中的元素只有0或者1,其中A[i,j]A[i,j]表示矩阵的第i行和第j列(1≤i,j≤N)( ...

  6. 洛谷 P3374 【模板】树状数组 1(单点加,区间和)

    题目链接 https://www.luogu.org/problemnew/show/P3374 树状数组 树状数组最基本的就是求区间和. 维护: 空间复杂度:O(n) 时间复杂度(区间和,单点修改) ...

  7. 洛谷P3374 【模板】树状数组 1

    P3374 [模板]树状数组 1 140通过 232提交 题目提供者HansBug 标签 难度普及/提高- 提交  讨论  题解 最新讨论 题目描述有误 题目描述 如题,已知一个数列,你需要进行下面两 ...

  8. 洛谷 P3374 【模板】树状数组 1 题解

    P3374 [模板]树状数组 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N.M,分别表示该数列数字的个数 ...

  9. 【洛谷 p3374】模板-树状数组 1(数据结构)

    题目:已知一个数列,你需要进行下面两种操作:1.将某一个数加上x:2.求出某区间每一个数的和. 解法:树状数组求前缀和. #include<cstdio> #include<cstd ...

随机推荐

  1. 求最短路径(Bellman-Ford算法与Dijkstra算法)

    前言 Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的.这时候,就需要使用其他的算法来求 ...

  2. Luogu P2833 等式 我是傻子x2

    又因为调一道水题而浪费时间...不过细节太多了$qwq$,暴露出自己代码能力的不足$QAQ$ 设$d=gcd(a,b)$,这题不是显然先解出来特解,即解出 $\frac{a}{d}x_0+\frac{ ...

  3. Luogu P4159 [SCOI2009]迷路 矩阵快速幂+精巧转化

    大致就是矩阵快速幂吧.. 这个时候会发现这些边权$\le 9$,然后瞬间想到上回一道题:是不是可以建一堆转移矩阵再建一个$lcm(1,2,3,4,5,6,7,8,9)$的矩阵?...后来发现十分的慢q ...

  4. devtools实现springboot的热部署

    spring-boot-devtools介绍: spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原理是在发现代码有更改 ...

  5. 025 Reverse Nodes in k-Group 每k个一组翻转链表

    给出一个链表,一次翻转 k 个指针节点,并返回修改后的链表.k 是一个正整数,并且小于等于链表的长度.如果指针节点的数量不是 k 的整数倍,那么最后剩余的节点应当保持原来的样子.你不应该改变节点的值, ...

  6. ubuntu搭建mediawiki

    1.搭建lamp环境,lamp指的是: Linux+Apache+Mysql/MariaDB+Perl/PHP/Python (我们安装的是Linux+apache2+postgresql+php) ...

  7. Unity [RequireComponent(typeof(组件名))]

  8. Hive 环境的安装部署

    Hive在客户端上的安装部署 一.客户端准备: 到这我相信大家都已经打过三节点集群了,如果是的话则可以跳过一,直接进入二.如果不是则按流程来一遍! 1.克隆虚拟机,见我的博客:虚拟机克隆及网络配置 2 ...

  9. WebAPI创建

    一.创建Web API 1.Create a New Web API Project创建新的Web API项目 Start by running Visual Studio 2010 and sele ...

  10. MyBatis总结与复习

    Spring 主流框架 依赖注入容器/AOP实现 声明式事务 简化JAVAEE应用 粘合剂,将大家组装到一起 SpringMVC 1.  结构最清晰的MVC Model2实现 2.  高度可配置,支持 ...