竟然是线段树?
队友二分过的,tql
题意+
让你求大于这个数+m的最远的那个数与当前数字的中间有几个数字。
思路
我们先将这个序列排序,并记录每个数字的位置。然后我们遍历每个数字的时候: 首先找到大于当前数字的排好序的序列中的位置,查询这个位置到最后位置的区间中坐标的最大值。这个查询就是线段树,我们需要事先建好以排好序的序列中的元素的下标为叶子节点的线段树。
1 |
|
云腾致雨,露结为霜
竟然是线段树?
队友二分过的,tql
让你求大于这个数+m的最远的那个数与当前数字的中间有几个数字。
我们先将这个序列排序,并记录每个数字的位置。然后我们遍历每个数字的时候: 首先找到大于当前数字的排好序的序列中的位置,查询这个位置到最后位置的区间中坐标的最大值。这个查询就是线段树,我们需要事先建好以排好序的序列中的元素的下标为叶子节点的线段树。
1 | #include <bits/stdc++.h> |