题目大意:给你一个序列,对于每个i,你可以选择1~i-1中任意多的数并将它删去,剩余的数(包括i)∑≤m,问对于每个i最少删几个数可以达到要求 题解: 考虑朴素的思想,对于每个i,我只需要删去最大的若干个使得∑≤m即可,时间复杂度O(n^2) 显然不可接受,考虑优化 显然可以看出,因为只需要删去最大的若干数,于是想到前K大,于是很自然想到用线段树 先离散化,只需要记录这个数是第几大,之后线段树维护区间和,每新加入一个点时加入这个点第几大的下标 询问时在线段树上二分出前K大即可,时间复杂度O(nl…