给出一数组a,然后要求查询a[i..j]的第k大的数划分树#include#include#includeusingnamespacestd;constintN=100005;structNode{intl,r;intmid(){return(l+r)>>1;}}tree[Nmidval){val[...
分类:
其他好文 时间:
2014-09-01 22:30:23
阅读次数:
309
原题http://acm.hdu.edu.cn/showproblem.php?pid=4251
The Famous ICPC Team Again
Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 822 Accepte...
分类:
其他好文 时间:
2014-08-12 13:46:24
阅读次数:
362
题意:有n个数,m个询问(l,r,k),问在区间[l,r] 有多少个数小于等于k。
划分树——查找区间第k大的数。。。。
利用划分树的性质,二分查找在区间[l,r]小于等于k的个数。
如果在区间第 i 大的数tmp>k,则往下找,如果tmp
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-08-12 00:46:53
阅读次数:
518
原题http://poj.org/problem?id=2104
K-th Number
Time Limit: 20000MS
Memory Limit: 65536K
Total Submissions: 37130
Accepted: 11974
Case Time Limit: 2000MS
Description
...
分类:
其他好文 时间:
2014-08-11 17:57:42
阅读次数:
233
#include
#include
#include
using namespace std;
#define N 100500
#define MID ((l+r)>>1)
int a[N],s[N],t[20][N],num[20][N],n,m;
// void build(int lft,int rht,int ind)
// {
// if...
分类:
其他好文 时间:
2014-08-11 15:13:52
阅读次数:
252
第一次 耍划分树。。。
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#include
#include
#include
#include
#include
#include
typedef long long LL;
const int ...
分类:
其他好文 时间:
2014-08-10 18:37:20
阅读次数:
181
博主sbit。。。。对于高级数据结构深感无力,然后这些东西在OI竟然烂大街了,不搞就整个人都不好了呢。于是我勇猛的跳进了这个大坑 ——sbit区间K大的裸题,在线,无修改。可以用归并树(\(O(nlog^3n)\)),也可用划分树(\(O(nlogn + mlogn)\))。果断划...
分类:
其他好文 时间:
2014-08-04 01:51:46
阅读次数:
391
给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么只有询问,没有修改可以用归并树和划分树(我都没学过。。囧)我是专门冲着弄主席树来的对主席树的建树方式有点了解了,不过这题为什么是在主席树里面这么操作的 还是有点不懂,今天照着模板敲了一遍就打多校了再研究吧#include #inc...
分类:
其他好文 时间:
2014-07-30 00:42:32
阅读次数:
290
题意:
一段固定不变的数字 m次询问 每次询问选择一个x值 使得区间[l,r]中每个元素与x的差的绝对值的和最小
思路:
x值明显选择[l,r]中数字的中位数 那么题目就变成了[l,r]中第(r-l+1+1)/2小的数是几 由于数字是静态的 所以划分树可解
那么ans = num(x) - num(>x) * x
由于sum之间可由前缀和相互求出 num也可以通过...
分类:
其他好文 时间:
2014-07-21 16:16:12
阅读次数:
263
题意:
有n个数字 m个查询 每个查询询问区间[l,r]内有几个数字小于h
思路:
由于n个数字是不变的 所以可以利用划分树在nlogn复杂度内求出任意区间的第k小值(这里指建树)
每次查询可以二分查找该区间第几小的数小于等于h 那么答案就是二分出的个数
总复杂度 nlogn + m(logn)^2 即 建树复杂度 + m次询问*每次查询logn*二分复杂度logn
n和m都只有10^5 完全可过...
分类:
其他好文 时间:
2014-07-19 23:35:59
阅读次数:
232