题意:
问l,r区间 取任意整数x , 问 ∑|X-xi| 的最小值
做法:很明显 这个X是中位数。 中位数想到划分树,然后在划分树 建树的时候,把进左子树的数计算一个前缀和,然后在查询的时候,如果到右子树,就把区间内进入左子树的数算一个和。最后统计出来的sumlft 就是所有比区间内中位数小的数了。...
分类:
其他好文 时间:
2015-08-04 11:27:18
阅读次数:
129
题目的意思:给点区间[a, b],查找第K大的数,和POJ2104题一样,只是HDU上的时间限制5000MS,用我在POJ上的方法,过不了,会超时。
而这一题的代码,改一下main函数的输入,就可以直接AC了POJ上的2104.
这题,用分桶法,WR,纠结了一晚上,最后还是放弃了,实在不知道错在哪里。于是改用了划分树的方法,学习了划分树的建立和查找。
划分树:主要运用于求解序列中区间[a, ...
分类:
其他好文 时间:
2015-07-25 15:20:52
阅读次数:
159
划分树的模板题。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int N = 100001; 7 int tree[20][N]; 8 int sum[20][N]; 9 int as[N];10 11 ...
分类:
其他好文 时间:
2015-07-16 18:35:42
阅读次数:
130
划分树是保存了快速排序的过程的树,可以用来求静态第k小的数如果,划分树可以看做是线段树,它的左孩子保存了mid-L+1 个 小于等于 a[mid] 的数字, 右孩子保存了 R-mid个大于等于a[mid]的数字 数组a是排序过后的数组,而划分树保存的是原数组的数据,划分树的构造就是将上一层[l,r....
分类:
其他好文 时间:
2015-07-15 12:43:20
阅读次数:
171
Description
You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able...
分类:
其他好文 时间:
2015-07-08 21:04:04
阅读次数:
137
题目大意:有一个数列 x1..xn,要求一个数x使得 sigma(abs(xi-x))值最小,很明显,对数列进行排序后最中间的那个数就是x,可用划分树求得,那么如何求和呢,经过计算可知,既然x 是最中间的那个数,那么最后的和 即为 x左边 xmid-x1+xmid-x2.. + x(mid+1) -...
分类:
其他好文 时间:
2015-07-04 00:51:41
阅读次数:
105
题意:给出一个序列,若干查询,询问区间l到r的第k小值。解法:划分树可以最有效的解决这个问题……但是划分树只能解决这个问题= =主席树的应用范围比较广……所以只学了主席树……嗯……膜拜发明主席树的大神,引用一下他的话..这个东西是当初我弱不会划分树的时候写出来替代的一个玩意..被一小撮别有用心的人取...
分类:
其他好文 时间:
2015-06-18 23:31:15
阅读次数:
116
如果题目给出1e5的数据范围,,以前只会用n*log(n)的方法去想今天学了一下两三种n*n*log(n)的数据结构他们就是大名鼎鼎的归并树划分树主席树,,,,首先来说两个问题,,区间第k大 ,,,,这个问题的通用算法是划分树,,说白一点就是把快速排序的中间结果存起来,举个栗子原数列 4 1 ...
分类:
其他好文 时间:
2015-06-15 00:11:10
阅读次数:
962
题目链接:http://poj.org/problem?id=2104题目分析:该问题给定一段区间中的值,再给定一段查询区间[ql, qr],需要给出该查询区间中的值在排序后的第K大的值;使用划分树即可解决该问题;划分树的建树的复杂度为O(NlogN),查询一个区间的第K大值的复杂度为O(logN)...
分类:
其他好文 时间:
2015-06-12 00:38:43
阅读次数:
124