随笔分类 - 数据结构——划分树&&左偏树
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3473、题意:给定一个长度为n的序列,求区间[l,r]内的一个点值为x,使得最小。思路:很多解题报告都说找出区间[l,r]的中位数即可,可是我百度了一下中位数,他的定义是这样的:当变量值的项数N为奇数时,处于中间位置的变量值即为中位数;当N为偶数时,中位数则为处于中间位置的2个变量值的平均数,也即当N为偶数时,中位数就不一定属于该序列了。所以这里不是求得中位数。而是当N为奇数时得到中位数k,偶数时N/2(k)位置的那个数,也即这里保证x来自该序列。然后利用划分树求出区间[l,r]中小于k的个数以及他们的和,然
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4417题意:给定一个长度为n的序列,求区间[L,R]中小于h的个数;思路:分三种情况:1:如果该区间最小值都大于h输出0;2:如果该区间最大值小于等于h输出区间长度:3:否则,二分枚举该区间的第m大,直到找到第m大为最后一个小于等于h的;View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include
阅读全文