【题解】 洛谷 P3586 [POI2015] LOG

结论:设 \(>=s\) 的数的个数为 \(cnt\),则有解当且仅当 \(\sum_{i=1\land a_i<s}^n a_i\ge(c-cnt)\times s\)

感性证明:这个过程实际上就是一个将减到 \(0\) 的数字用没减到 \(0\) 的数字替补下来的过程,而一个数字能成为替补数字只能是它还没有被选入那 \(c\) 个数,但是所有的 \(\ge s\) 的数一定是一直在 \(c\) 个数中的,所有除去这 \(cnt\) 个数,其它的数可以随便替补,所以只要他们的和 \(\ge\) 它们所要承担的减的数量就行了。

那么知道这个结论就很好办了,用树状数组维护 \(\le x\) 的序列中所有数字的和及其个数即可。

值域比较大的话离线离散化即可。

posted @ 2022-08-11 17:46  wapmhac  阅读(21)  评论(0编辑  收藏  举报