在解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+...+A[i]。但是不难发现,如果我们修改了任意一个A[i],那么S[i]、S[i+1]...S[n]都会发生变化。可以说,每次修改A[i]后,调整前缀和S在最坏情况下会需要O(n)的时间。当n非常大时,程序会运行得非常缓慢。因此,这里我们引入“树状数组”,它的修改与求和都是O(logn)的,效率非常高。...
分类:
其他好文 时间:
2014-08-05 14:15:00
阅读次数:
193
树状数组相对比较基础的入门题目,可以多阅读几次!...
分类:
其他好文 时间:
2014-08-05 14:12:29
阅读次数:
154
树状数组枚举裁判位置,设裁判为第i 个人,左边有l[i]个比他小的选手,右边有r[i]个比他小的选手;令c[i]表示技能值为i 的人是否存在,计算l[i] 即c[1]~c[i-1]的和,计算l[i]后使c[a[i]]=1;同理求r[i]; 1 #include 2 #include 3 #inc.....
分类:
其他好文 时间:
2014-08-04 17:29:47
阅读次数:
184
HDU 4908 BestCoder Sequence
题目链接
题意:给定一个序列,1-n的数字,选定一个作为中位数m,要求有多少连续子序列满足中位数是m
思路:组合数学,记录下m左边和右边一共有多少种情况大于m的数字和小于n数组的差,然后等于左边乘右边所有的和,然后最后记得加上左右两边差为0的情况。
当时也是比较逗,还用树状数组去搞了,其实完全没必要
代码:
...
分类:
其他好文 时间:
2014-08-04 02:06:26
阅读次数:
249
Description
Vasya is a ufologist and his duties include observing Unidentified Flying Objects (UFOs) in the part of space bounded by a cube N × N ×N. The cube is divided into cubic sectors 1 ...
分类:
其他好文 时间:
2014-08-01 19:58:52
阅读次数:
302
题目大意:求移动数列中的第一个元素到最后一位时的最少逆序数。(进行n次移动,求移动过程中最少的逆序数)
难点:
一:什么是逆序数? 定义: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,31是逆序,逆序数是4...
分类:
其他好文 时间:
2014-08-01 16:07:21
阅读次数:
153
Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows....
分类:
其他好文 时间:
2014-08-01 13:48:01
阅读次数:
280
Apple Treehttp://poj.org/problem?id=3321 1 #include 2 #include 3 #define mt(a,b) memset(a,b,sizeof(a)) 4 const int M=100010; 5 struct G{ 6 struct ...
分类:
其他好文 时间:
2014-08-01 13:18:11
阅读次数:
178