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

树状数组

时间:2023-10-13 21:55:06浏览次数:24  
标签:单点 树状 int res 查询 修改 while 数组

数据结构,支持区间查询,单点修改或区间修改,单点查询。

单点修改操作:

void modify(int x,int val)
{
	while(x<N){
		c[x]+=val;
		x+=lowbit(x);
	}
}

查询前缀和:

int query(int x)
{
	int res=0;
	while(x){
		res+=c[x];
		x-=lowbit(x);
	}
	return res;
}

要做到区间修改、单点查询只需要用差分思想,偷换一下概念即可。

标签:单点,树状,int,res,查询,修改,while,数组
From: https://www.cnblogs.com/lzaqwq/p/17763344.html

相关文章

  • 在JavaScript中如何检查数组是否包含某个值?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中如何检查数组是否包含某个值?在JavaScript中,最简洁、高效的方法来检查数组是否包含某个值是什么?这是我所知的唯一方法:functioncontains(a,obj){for(vari=0;i<a.length;i++){if(a[i]===obj)......
  • 16、oracle的游标open动态接收数组
    oracle的游标open动态接收数组使用实例:DECLARETYPECUR_MODEL_TYPEISREFCURSOR;C1CUR_MODEL_TYPE;V_TASK_CODEVARCHAR2(1000);V_DRAW_TYPEVARCHAR2(1000);BEGINFORCURIN(SELECTT.BIZ_CODE,T.BIZ_TYPE_IDFRO......
  • 使用vue在移动端显示树状多选功能
    最近的项目要求是做一个树状的多选功能,然而该项目是使用vant4作为前端的框架,vant4只有树状单选,没有多选的,那只能自己写一个了。借鉴博主https://blog.csdn.net/m0_68428581/article/details/130641982,我将他的代码转成了vue3的语法,并且根据自己的项目需求进了相关改动,终于实现......
  • Java SWT Image 图像 —— 透明度 alpha数组
    对于图像深度是2、4、8的图像,可以指定transparentPixel。对于直接图像,要使用alpha或者alpha数组,alpha值0到255,0表示完全透明的,数值越大表示越是不透明,255表示完全不透明,可以只是设置一个alpha值,作用于所有的像素点,也可以给所有的像素点设置自己的透明的值。 如: 的alpha的数组值为......
  • 代码随想录第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
    977有序数组的平方题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/思路:双指针(实际是三指针),两个找最大值,一个确定平方后的位置。209.长度最小的子数组题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/思路:很像双指针,一个指向子数组开头,一......
  • 2562. 找出数组的串联值
    题目题解直接使用双指针,依次拼接如果指针结束指向同一个数,则再加上该数classSolution{publiclongfindTheArrayConcVal(int[]nums){intleft=0;intright=nums.length-1;longres=0;while(right>left){......
  • day01-java数组
    数组概述数组的定义数组时相同类型的数据的有序集合数组描述的时相同类型的若干个数据,按照一定的先后次序排列组合而成。数组的声明和创建首先必须声明数组变量,才能在程序中使用数组。dateType[]arrayRefVar;或者dataTypearrayRefVar[];//效果相同,但不是所选方法java......
  • 代码随想录训练营的第二天(Python)| 977.有序数组的平方、209.长度最小的子数组
    977.有序数组的平方暴力求解(O(n+logn))classSolution:defsortedSquares(self,nums:List[int])->List[int]:returnsorted(i**2foriinnums)双指针(O(n))由于列表是单调递增的,元素平方后的最大值要么在最前面,要么在最后面classSolution:defsort......
  • 总结数组中常用的方法
    //改变原数组数组名.push(数据),返回数组的长度数组名.pop(),返回删除的那个数据数组名.unshift(数据),返回数组的长度数组名.shift(),返回删除掉的那个数据数组名.reverse(),返回翻转好的数组数组名.sort()会按照位排序,比如1,11,2;字符串会按照AscII码顺序单个比较字符数组名.sort(fu......
  • Scala学习(三)数组操作
    1、定长数组vara=newArray[String](10)vara=Array("zhangsan","lisi")2、变长数组ArrayBuffer相当于java的ArrayListimportscala.collection.mutable.ArrayBuffervara=ArrayBuffer[Int]()a+=1即向数组中放入一个元素值为1 a+=(1,2,3,4,5)a++=Array(6,7,8,9,10)a.tr......