题解 CF891B Gluttony

妙啊!充分说明了猜结论的重要性

\(a\) 重新排列使选出若干个位置,新数组中这些位置的和于元素组不同,没有重复元素。

看到 \(n \le 22\) 就开始想,肯定是非多项式复杂度的做法,想着从一个开始慢慢往里放,像个办法保证和前面的所有组合的差都不为相反数。可是没法证明任何正确性或错误性。

其实做法很简单,拍个序往后移动一位就行了。
首先若不选择第一个,那么原数组中每一个数都更大,肯定不会有和相同的情况。若选了第一个,因为每个数不同,第一个和最后一个的差肯定比中间的一个数和后面数的差的和大,所以也不可能有相同情况。

那么为什么 \(n\) 那么小呢,开到 \(100000\) 不好吗?
SPJ 复杂度吃不消啊!

第一次见数据受 SPJ 限制的题目,留个纪念!

posted @ 2021-07-29 14:17  Acfboy  阅读(29)  评论(0)    收藏  举报