首先看到这道题就知道这个询问肯定可以转化为判断某个条件。
考虑构造这个条件。
设这个序列为 \(\{a_i\}\),对于一个询问 \(\texttt Z\ c\ s\),我们首先贪心地选择 \(\ge s\) 的数来减,减不够了再用 \(< s\) 的。
于是设 \(cnt = \sum\limits_{i=1}^n [a_i \ge s],sum = \sum\limits_{i=1}^n [a_i < s]a_i\)。
条件即 \(sum \ge (c-cnt)s\)。
这个显然是必要条件,但是充分性还有待考虑,因为我们无法确定剩下还能选够 \(c\) 个数。
注意到 \(< s\) 的数最少也只能有 \(\lceil\frac{sum}{s-1}\rceil\) 个。
然后注意到 \(\lceil\frac{sum}{s-1}\rceil \ge \frac{sum}{s-1} > \frac{sum}s \implies \lceil\frac{sum}{s-1}\rceil + cnt \ge c\)。
故 \(sum \ge (c-cnt)s\) 对询问的充分性成立。
随便挑个数据结构维护下就行了。
代码:
1 |
|