树状数组是和线段树类似的数据结构,基本上树状数组可以做的线段树都可以做;

树状数组就是一个数组,在信息记录上有一些特点,以动态求前n项和为例:可以改变数组的某一个元素,求前n项和;

数组tree[ i ]记录的是A[ i - lowbit ( i )+1]~A[ i ]的和,lowbit(i),表示i的最低二进制是多少;表现在数组编号上就是上面的图中表现的东西;

求前n项和的操作:

    

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 #define MAX 1000
 5 inline int lowbit(int x)
 6 {
 7     return x&(-x);
 8 }
 9 int main()
10 {
11     int tree[MAX+10],a[MAX];
12     for(int i=1;i<=MAX;i++)//编号从1开始;
13         scanf("%d",&a[i]);
14     //求前n项和的操作;
15     int n,ans=0;
16     scanf("%d",&n);
17     for(int i=n;i>0;i-=lowbit(i))
18     {
19         ans+=tree[i];
20     }
21     //给第n项数加m;
22     int m;
23     scanf("%d%d",&n,&m);
24     for(int i=1;i<=MAX;i+=lowbit(i))
25     {
26         tree[i]+=m;
27     }
28     return 0;
29 }

转载于:https://www.cnblogs.com/by-1075324834/p/4546088.html

树状数组--前n项和;相关推荐

  1. 树状数组再进阶(区间修改+区间查询)

    今天,我们再在树状数组上进一步突破,我们来讲一讲区间修改和区间查询.同样的,这需要各位对树状数组的基本知识有所了解,大家可以看看我的另一篇文章:树状数组趣解. 下面进入正题. 同样的,我还是先给代码, ...

  2. 小魂和他的数列(dp+树状数组优化)

    链接:https://ac.nowcoder.com/acm/contest/3566/C 来源:牛客网 Sometimes, even if you know how something's goi ...

  3. 数据结构:树状数组:姐来展示下什么叫高端前缀和

    树状数组:花式前缀和 一.位运算:lowbit() 二.树状数组介绍 三.离散化 四.实战题目: 五.树状数组变式:支持区间查找的HashMap 我们知道前缀和是十分高效的,可以以O(1)的速度求出任 ...

  4. Apple Tree树状数组、前向星、DFS序(C语言)

    Apple Tree树状数组.前向星.DFS序(C语言) 题目 输入值 第一行包含一个整数Ñ(Ñ ≤100,000),这是树中的叉的数量. 接下来的N -1行分别包含两个整数u和v,这意味着fork ...

  5. Apple Tree(树状数组+dfs序+邻接表数组(链式前向星) )

    链接:http://poj.org/problem?id=3321 Description There is an apple tree outside of kaka's house. Every ...

  6. HDU - 5877 Weak Pair 2016 ACM/ICPC 大连网络赛 J题 dfs+树状数组+离散化

    题目链接 You are given a rootedrooted tree of NN nodes, labeled from 1 to NN. To the iith node a non-neg ...

  7. 树状数组的理解(前缀和 and 差分)

    二更-- 有神仙反映数星星那个题外链炸了,我决定把图给你们粘一下,汉语翻译的话在一本通提高篇的树状数组那一章里有,同时也修改了一些汉语语法的错误 这段时间学了线段树组,当神仙们都在学kmp和hash的 ...

  8. 树状数组 区间update/query

    Re [问题引入] 对于区间修改.区间查询这样的简单问题,打一大堆线段树确实是不划算,今天来介绍一下区间查询+区间修改的树状数组 [一些基础] 树状数组的基本知识不再介绍,请自行百度 我们假设sigm ...

  9. python【数据结构与算法】树状数组(附例题)

    文章目录 1 概述 2 单点查询 3 区间修改 4 例题 1 概述 首先引入差分数组d,设原数组为a,令d[i]=a[i]-a[i-1].由此关系式得 也就是a[j]等于d[j]的前 j 项和,即前缀 ...

  10. 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)

    Bubble Sort 题意: 给你一个1~n的排列,问冒泡排序过程中,数字i(1<=i<=n)所到达的最左位置与最右位置的差值的绝对值是多少 题解: 数字i多能到达的最左位置为min(s ...

最新文章

  1. jquery and event
  2. 注意区分啊~这里求的的事公共子串不是子序列。NOJ308-Substring
  3. 另一种Background job的 debug方法
  4. HTTP与HTTP协议
  5. react加水印_给网页增加水印的方法,react
  6. 调侃面向对象编程的23种设计模式
  7. Spring MVC使用@RestController生成JSON示例
  8. linux 一次对一个用户限制存取
  9. 华为GPON设备ONU常见告警及处理
  10. c语言逻辑运算符用法大全,C语言逻辑运算符介绍和示例
  11. pandas 数据透视表
  12. 研究生如何学习与科研的几点建议——来自一枚菜博的愚见
  13. 在企业工作一年多的几点感悟
  14. fcpx绘制遮罩_FCPX插件6组画面冻结定帧静止转场介绍效果 Freeze Frame Transitions【资源分享1542】...
  15. 为什么PDF转成Word后是图片,怎么才能修改?
  16. html5调整文字段落之间的距离,css设置p段落上下间距距离
  17. 使用win10自带功能,横屏、竖屏显示器分别设置壁纸
  18. java基于ssm的道路求援车队管理系统
  19. ffmpeg与ffdshow的关系
  20. 保姆级教程:深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

热门文章

  1. ubuntu14.04.5安装paramiko模块pip install paramiko出现一堆问题的解决过程
  2. shell基础入门1.1shell特性
  3. 配置IIS5.5/6.0 支持 Silverlight
  4. java实战技巧--关于格式化输出日期
  5. Intent与intent-filter
  6. Android 中AlarmManager升级4.2
  7. 最有效的更改linux 系统时区的方法
  8. oracle developer连接access
  9. 微信小程序报错:Unhandled promise rejection TypeError: WebAssembly.instantiate(): Argument 0 must be a buffe
  10. android系统的图标大小,android开发中手机图标大小的问题