首页 > 其他分享 >树状数组

树状数组

时间:2022-12-30 21:11:51浏览次数:35  
标签:return 树状 int res void 数组 lowbit end

 lowbit 函数

inline int lowbit(int x) { return x & (-x); }

 单点修改

void update(int res, int plus)
{
	for (int i = res; i <= n; i += lowbit(i))
		c[i] += plus;
}

 区间求和

int sum(int end)
{
	int res = 0;
	for (int i = end; i; i -= lowbit(i))
		res += c[i];
	return res;
}

 初始化

int pre[maxn];
void init()
{
	for (int i = 1; i <= n; i++)
	{
		pre[i] = pre[i - 1] + a[i];
		c[i] = pre[i] - pre[i - lowbit(i)];
	}
}

 

标签:return,树状,int,res,void,数组,lowbit,end
From: https://www.cnblogs.com/xqk0225/p/17015814.html

相关文章

  • 刷刷刷Day2| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
    977.有序数组的平方LeetCode题目要求给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-......
  • 数组数据类型
     代码示例:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><script>var......
  • 【LeetCode数组#3有序数组的平方】有序数组平方
    有序数组的平方力扣题目链接(opensnewwindow)给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:num......
  • 数组——多维数组、Arrays类讲解
    数组——多维数组、Arrays类讲解多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。二维数组inta[][]=newi......
  • js获取数组最后一个元素的方法
    //定义一个数组letarr=[10,20,30,40]//不会修改到原数组arr.slice(-1)[0]//40=>arr.slice(-1)返回的是数组arr.at(-1)//40=>支持传入一个下标,支持负......
  • 第三章《数组与循环》第8节:数组与循环经典例题
    利用数组和循环可以解决很多经典问题,比如对数字的查找、排列、筛选等。本小节甄选了其中一些有代表性的问题集中进行讲解,认真学习这些经典例题不仅有助于巩固Java语言的相关......
  • 迭代(遍历数组)forEach
    1.forEach用法vararr=[13,2,2,5] varsum=0 //forEach用法:Array.forEach(function(数组当前项的值,数组当前项的索引值,数组本身){}) arr.forEach(function(valu......
  • 稀疏数组
    1.先看实际需求编写的五子棋程序中,在存盘退出和续上盘的功能分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据,那么该怎么解决呢?稀疏数组。2.基......
  • 基于Python Numpy的数组array和矩阵matrix详解
    NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes)......
  • 把文件里的数据变成shell脚本中的数组
    阿斯蒂芬filelist=$(cat/opt/fossx/data/wyyshell/norma.txt)数组的定义格式是有强制规范的:(item item item ...),注意是两个空格;赋值号=两边不能有空格,必须紧挨......