树状数组适合单个元素经常修改,而且还要反复求某个区间的和 树状数组的编程效率和程序运行效率都要比线段树要高(时间复杂度一样,但是梳妆数组的常数较小)如果每次修改的不是一个数,而是一个区间就不适合用树状数组了(效率较低)树状数组的时间复杂度总结:建数组0(n)更新0(logn)局部求和0(logn)当...
分类:
编程语言 时间:
2015-04-03 23:53:06
阅读次数:
177
敌兵布阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 51317 Accepted Submission(s): 21480
Problem Description
C国的死对头A国这段时间正在进行军事演习,所以...
分类:
编程语言 时间:
2015-04-03 15:18:31
阅读次数:
126
有n个星星,按照y坐标的升序给出n个星星的坐标,对于每一个星星,其level为在其左下方(包括正左,正下)的星星个数,输出n行,第i行代表等级为i个星星的星星的个数。树状数组的插点问段思路:a[i]存储星星的x坐标,b[i]表示0到i中x,y坐标小于i的个数,即i的等级则对于每个b[i],做一次扫描...
分类:
编程语言 时间:
2015-04-03 15:02:52
阅读次数:
126
Japan某城市的左边从上到下有n个城市,右边从上到下有m个城市,现要建k条高铁,起点在左边,终点在右边,问有多少个交点(任一交点只能有2条线同时经过)。排序+树状数组,插点问段。排序后,按起点从小到大扫一遍,a[j]表示前i条线中,终点为j的个数。c[j]a[j]的树状数组。注意:最后结果要用lo...
分类:
编程语言 时间:
2015-04-03 15:01:52
阅读次数:
130
一群牛,编号为1到n,但是编号乱了,已知每只牛的前面有多少只编号比其小,求出牛的编号。插点问段。这道题要从后面反推回来,比如最后的一只牛,知道有a只编号比它小,则它的编号为a+1。update 更新已经确定的编号,sum(i) 查询已经确定的编号中(后面的牛的编号都确定了),有多少个比i小。 1 #...
分类:
编程语言 时间:
2015-04-03 14:49:49
阅读次数:
133
题目链接:http://hihocoder.com/contest/hiho39/problem/1 ,归并排序求逆序数。 其实这道题也是可以用树状数组来做的,不过数据都比较大,所以要离散化预处理一下,文中也会给出离散化+树状数组的解法,不过要比归并排序慢一点。算法: 还是按照题中给的解...
分类:
编程语言 时间:
2015-04-03 13:16:38
阅读次数:
161
linux 命令1、pwd 打印当前目录2、ls(list) 蓝色为文件夹 黑色为文件 绿色为可执行文件 红色为压缩包 参数: ls -1 每一列只显示一个文件或目录名称ls -a 显示所有文件和目录ls -A 显示所有文件和目录,但不包括现行目录和上一层目录3、tree以树状图列出目录...
分类:
系统相关 时间:
2015-04-03 00:14:07
阅读次数:
232
一:树状数组
树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。
需求:有时候我们需要频繁地求数组的前k项和或者求数组从小标i到j的和,这样每次最坏情况下的时间复杂度就会为O(N),这样效率太低了。而树状数组主要就是为了解决这样一个问题。树状数组在求和及修改都可以在O(lgN)时间内完成。
树状数组需要额外维护一个数组,我们设为...
分类:
编程语言 时间:
2015-04-01 21:59:03
阅读次数:
177
逆序数就是指比如:数组A={2,4,3,5}那么就是一个逆序数。
一:暴力匹配
对于数组A中的元素,i从0到n-1,j从i+1到n, 判断每一个是否为逆序数,时间复杂度O(lgN)。太简单了,没写代码了。。。。。
二:归并
归并排序能解决逆序数主要在于:比如归并A1={2,4,5}, A2={1,3},进行归并的时候,我们每次判断A1和A2中元素大小,这里有两种思路:(1)当A1[i] ,...
分类:
其他好文 时间:
2015-04-01 21:54:13
阅读次数:
136