https://scut.online/p/106 错在这组样例,发现是离散化之后,对k访问的时候也是应该访问离散化之后的k。 发现主席树大概还真的要开够log倍,少一点都不行,那干脆开大一点。 cpp include define mid ((l+r) 1) using namespace std ...
分类:
其他好文 时间:
2019-08-09 01:12:44
阅读次数:
75
题意:带修求区间k小 题解:回忆在使用主席树求区间k小时 利用前缀和的思想 既然是前缀和 那么我们可以使用更擅长维护前缀和的树状数组 但是这里每一颗权值线段树就不是带版本的 而是维护数组里i号点的权值信息 所以实际上并不是主席树 每一棵和前面一棵并没有共用结点 对于一次修改操作 我们先删去这个点的原 ...
分类:
编程语言 时间:
2019-08-07 16:07:25
阅读次数:
111
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 题意:T(3)组样例,n(1e5)个数,q(1e5)次查询,查询[l , r] 内, | a[i] - p | 第k大的数,且强制要求离线化 分析:初始的思路是跟着修改,想着用动态主席树来做,但是 ...
分类:
其他好文 时间:
2019-08-04 16:46:47
阅读次数:
119
"K th Closest Distance" 主席树第二波~ 题意 给你$n$个数$m$个询问,问$i\in [l,r]$计算每一个$|a_{i} p|$求出第$k$小 题目要求强制在线$l = l \oplus ans、r = r \oplus ans、p = p \oplus ans、k = ...
分类:
其他好文 时间:
2019-08-03 00:42:42
阅读次数:
75
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6621 考虑主席树,我们先将所有值离散化之后建主席树。对于每个查询$s,t,p,k$ 我们考虑二分一个值$mid$,考虑当前区间内,$[p mid, p+mid]$的值有多少个,很显然这是符合单调性的,那 ...
分类:
其他好文 时间:
2019-08-02 13:11:30
阅读次数:
85
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6621 题意:给一个数组,多次询问 l,r,k,p,问 l~r区间 第k小的|p-ai|是多少1<=p、ai<1e6 、1 <= K <= 169, R - L + 1 >= K,1 <= n, m <= ...
分类:
其他好文 时间:
2019-08-02 10:43:09
阅读次数:
82
现在有一群任务,每个任务都有开始和结束的时间和一个优先级,给你所有任务的开始结束时间和优先级,问你在某个时间点优先级最小的k个的优先级的和是多少. 普通的主席树是单点修改 区间查询 这题正好相反 可以用差分数组来做 区间查询改为1-i的前缀和 注意copy结点的方式 不能简单的复制T 还有son t ...
分类:
编程语言 时间:
2019-08-01 11:49:08
阅读次数:
128
主席树 + 二分答案 对于这种区间内的值域问题一般用主席树进行求解。 因为数据范围只有1e6,所以不用离散化,直接建树即可。 题目要求找到区间内离p第k近的数,可以想到,这个问题具有单调性(某个区间长度有大于k个值,那么比这个区间长度更长的比如也有大于k个值) 于是我们可以二分答案这个距离,枚举离p ...
分类:
其他好文 时间:
2019-08-01 10:27:12
阅读次数:
96
K th Closest Distance "题目传送门" 解题思路 二分答案+主席树 先建主席树,然后二分答案mid,在l和r的区间内查询\[p mid, p+mid]的范围内的数的个数,如果大于k则说明这个范围内存在第k小的数,r=mid,否则不存在,l=mid+1。 代码如下 ...
分类:
其他好文 时间:
2019-08-01 09:30:53
阅读次数:
127
08 K-th Closest Distance 题意:询问区间l,r中与数p的距离为第k大的数 求这个距离 题解:很裸的主席树 二分答案 然后可以用主席数判断在这个区间内 一段值域内出现的数 之前没写过主席树求 统计小于区间某个数的个数 自作主张写的二分区间k小 loglog tle死 看了汪聚聚 ...
分类:
其他好文 时间:
2019-07-31 23:34:55
阅读次数:
112