树状数组--前n项和;
树状数组是和线段树类似的数据结构,基本上树状数组可以做的线段树都可以做;
树状数组就是一个数组,在信息记录上有一些特点,以动态求前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项和;相关推荐
- 树状数组再进阶(区间修改+区间查询)
今天,我们再在树状数组上进一步突破,我们来讲一讲区间修改和区间查询.同样的,这需要各位对树状数组的基本知识有所了解,大家可以看看我的另一篇文章:树状数组趣解. 下面进入正题. 同样的,我还是先给代码, ...
- 小魂和他的数列(dp+树状数组优化)
链接:https://ac.nowcoder.com/acm/contest/3566/C 来源:牛客网 Sometimes, even if you know how something's goi ...
- 数据结构:树状数组:姐来展示下什么叫高端前缀和
树状数组:花式前缀和 一.位运算:lowbit() 二.树状数组介绍 三.离散化 四.实战题目: 五.树状数组变式:支持区间查找的HashMap 我们知道前缀和是十分高效的,可以以O(1)的速度求出任 ...
- Apple Tree树状数组、前向星、DFS序(C语言)
Apple Tree树状数组.前向星.DFS序(C语言) 题目 输入值 第一行包含一个整数Ñ(Ñ ≤100,000),这是树中的叉的数量. 接下来的N -1行分别包含两个整数u和v,这意味着fork ...
- Apple Tree(树状数组+dfs序+邻接表数组(链式前向星) )
链接:http://poj.org/problem?id=3321 Description There is an apple tree outside of kaka's house. Every ...
- 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 ...
- 树状数组的理解(前缀和 and 差分)
二更-- 有神仙反映数星星那个题外链炸了,我决定把图给你们粘一下,汉语翻译的话在一本通提高篇的树状数组那一章里有,同时也修改了一些汉语语法的错误 这段时间学了线段树组,当神仙们都在学kmp和hash的 ...
- 树状数组 区间update/query
Re [问题引入] 对于区间修改.区间查询这样的简单问题,打一大堆线段树确实是不划算,今天来介绍一下区间查询+区间修改的树状数组 [一些基础] 树状数组的基本知识不再介绍,请自行百度 我们假设sigm ...
- python【数据结构与算法】树状数组(附例题)
文章目录 1 概述 2 单点查询 3 区间修改 4 例题 1 概述 首先引入差分数组d,设原数组为a,令d[i]=a[i]-a[i-1].由此关系式得 也就是a[j]等于d[j]的前 j 项和,即前缀 ...
- 2016 Multi-University Training Contest 4 Bubble Sort(树状数组模板)
Bubble Sort 题意: 给你一个1~n的排列,问冒泡排序过程中,数字i(1<=i<=n)所到达的最左位置与最右位置的差值的绝对值是多少 题解: 数字i多能到达的最左位置为min(s ...
最新文章
- jquery and event
- 注意区分啊~这里求的的事公共子串不是子序列。NOJ308-Substring
- 另一种Background job的 debug方法
- HTTP与HTTP协议
- react加水印_给网页增加水印的方法,react
- 调侃面向对象编程的23种设计模式
- Spring MVC使用@RestController生成JSON示例
- linux 一次对一个用户限制存取
- 华为GPON设备ONU常见告警及处理
- c语言逻辑运算符用法大全,C语言逻辑运算符介绍和示例
- pandas 数据透视表
- 研究生如何学习与科研的几点建议——来自一枚菜博的愚见
- 在企业工作一年多的几点感悟
- fcpx绘制遮罩_FCPX插件6组画面冻结定帧静止转场介绍效果 Freeze Frame Transitions【资源分享1542】...
- 为什么PDF转成Word后是图片,怎么才能修改?
- html5调整文字段落之间的距离,css设置p段落上下间距距离
- 使用win10自带功能,横屏、竖屏显示器分别设置壁纸
- java基于ssm的道路求援车队管理系统
- ffmpeg与ffdshow的关系
- 保姆级教程:深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)
热门文章
- ubuntu14.04.5安装paramiko模块pip install paramiko出现一堆问题的解决过程
- shell基础入门1.1shell特性
- 配置IIS5.5/6.0 支持 Silverlight
- java实战技巧--关于格式化输出日期
- Intent与intent-filter
- Android 中AlarmManager升级4.2
- 最有效的更改linux 系统时区的方法
- oracle developer连接access
- 微信小程序报错:Unhandled promise rejection TypeError: WebAssembly.instantiate(): Argument 0 must be a buffe
- android系统的图标大小,android开发中手机图标大小的问题