树状数组--前n项和;

时间:2022-12-28 13:52:59

树状数组--前n项和;

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

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

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

求前n项和的操作:

    

 #include<iostream>
#include<cstdio>
using namespace std;
#define MAX 1000
inline int lowbit(int x)
{
return x&(-x);
}
int main()
{
int tree[MAX+],a[MAX];
for(int i=;i<=MAX;i++)//编号从1开始;
scanf("%d",&a[i]);
//求前n项和的操作;
int n,ans=;
scanf("%d",&n);
for(int i=n;i>;i-=lowbit(i))
{
ans+=tree[i];
}
//给第n项数加m;
int m;
scanf("%d%d",&n,&m);
for(int i=;i<=MAX;i+=lowbit(i))
{
tree[i]+=m;
}
return ;
}

树状数组--前n项和;的更多相关文章

  1. 树状数组 - BZOJ 1103 &lbrack;POI2007&rsqb;大都市

    bzoj 1103 [POI2007]大都市 描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员 Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景. ...

  2. BIT 树状数组 详解 及 例题

    (一)树状数组的概念 如果给定一个数组,要你求里面所有数的和,一般都会想到累加.但是当那个数组很大的时候,累加就显得太耗时了,时间复杂度为O(n),并且采用累加的方法还有一个局限,那就是,当修改掉数组 ...

  3. &lbrack;noip科普&rsqb;关于LIS和一类可以用树状数组优化的DP

    预备知识 DP(Dynamic Programming):一种以无后效性的状态转移为基础的算法,我们可以将其不严谨地先理解为递推.例如斐波那契数列的递推求法可以不严谨地认为是DP.当然DP的状态也可以 ...

  4. Codeforces Round &num;285 &lpar;Div&period;1 B &amp&semi; Div&period;2 D&rpar; Misha and Permutations Summation --二分&plus;树状数组

    题意:给出两个排列,求出每个排列在全排列的排行,相加,模上n!(全排列个数)得出一个数k,求出排行为k的排列. 解法:首先要得出定位方法,即知道某个排列是第几个排列.比如 (0, 1, 2), (0, ...

  5. &lbrack;bzoj2124&rsqb;等差子序列&lpar;hash&plus;树状数组&rpar;

    我又来更博啦     2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 941  Solved: 348[Submit][Statu ...

  6. 2016 Multi-University Training Contest 4 Bubble Sort&lpar;树状数组模板&rpar;

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

  7. CF 314C Sereja and Subsequences(树状数组)

    题目链接:http://codeforces.com/problemset/problem/314/C 题意:给定一个数列a.(1)写出a的不同的所有非下降子列:(2)定义某个子列的f值为数列中各个数 ...

  8. 洛谷 P3368 【模板】树状数组 2

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

  9. 二维树状数组(水题) POJ1195

    前段时间遇到线段树过不了,树状数组却过了的题.(其实线段树过得了的) 回忆了下树状数组. 主要原理,还是二进制位数,每一项的和表示其为它的前((最后一位1及其后)的二进制数)和,可从二进制图来看.(用 ...

随机推荐

  1. myisam、innodb存储引擎比较

    MYSQL表类型(存储引擎) 1.概述 MySQL数据库其中一个特性是它的存储引擎是插件式的.用户可以根据应用需要选择存储引擎.Mysql默认支持多种存储引擎,以适用各种不同的应用需要.默认情况下,创 ...

  2. RabbitMQ 异常与任务分发

    异常情况处理 上篇最后提到了这个问题, consumer异常退出.queue出错.甚至rabbitMQ崩溃.因为它们都是软件 ,软件都会有bug,这是无法避免的.所以RabbitMQ在设计的时候也想到 ...

  3. oracle使用存储过程实现日志记录&period;sql

    --这段sql语句是用来实现oracle后台记录操作日志的,代替或者补充应用系统的操作日志. --1.对应的日志记录表----------------------------------------- ...

  4. HTML--1标签表格

    HTML   内容(Hyper Text Markup Language,超文本标记语言) CSS    网页美化 Javascript    脚本语言 打开DREAMWEAVER,新建HTML,如下 ...

  5. Temporary-Post-Used-For-Style-Detection-Title-1901742601

    Temporary-Post-Used-For-Style-Detection-Content-1901742601

  6. Codeforces Round &num;130 &lpar;Div&period; 2&rpar; C - Police Station 最短路&plus;dp

    题目链接: http://codeforces.com/problemset/problem/208/C C. Police Station time limit per test:2 seconds ...

  7. Mediator pattern(c&plus;&plus; 实现)

    概述: 假设我们开发一个图片处理软件,里面肯定包括很多相关功能,比如说剪切,旋转,滤镜,美化等等,而我们这些功能所要处理的对象是固定的,就是我们所显示的那张图片.但是我们不能把所有的功能罗列到一个ta ...

  8. Qt模型&sol;视图、委托

    MVC视图和控制器对象相结合,其结果是模型/视图结构,仍然分离了数据与呈现给用户的方式,使得它可以在几个不同的视图中显示相同的数据,并实现新类型的视图而无需改变底层的数据结构.为了灵活的处理数据输入, ...

  9. python 内部函数,以及lambda,filter,map等内置函数

    #!/usr/bin/python #encoding=utf-8 def back(): return 1,2, "xxx" #python 可变参数 def test(*par ...

  10. POJ-1287 Networking---裸的不能再裸的MST

    题目链接: https://vjudge.net/problem/POJ-1287 题目大意: 模板 #include<iostream> #include<cstdio> # ...