B题https://ac.nowcoder.com/acm/contest/11177/B提供一个我觉得比较清晰的思路,只需要预处理出x两边有多少个数比它小,最后遍历一遍二分查询就行了。 直接拿样例举例:5 3 21 2 3 4 5d[3]=x。我们可以预处理出:l[]={2,1,0,0,0};表示下标i到下标3有多少个数比d[3]小。r数组同理不难发现两个数组单调。最后只需要二分统计答案,对于l[i]=a的位置,有r[]中有多少数等于k-1-a。 代码 #include <bits/stdc++.h> using namespace std; #define fir(i, a...