随笔分类 -  数据结构——划分树&&左偏树

摘要: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的个数以及他们的和,然 阅读全文
posted @ 2012-10-05 18:40 E_star 阅读(322) 评论(0) 推荐(0) 编辑
摘要: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 阅读全文
posted @ 2012-09-26 10:45 E_star 阅读(262) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示