对Bob来说,肯定是选择最大的m个数乘以-k,这样就可以让剩余数之和最小。
对于Alice来说,它可以选择去除0-d个元素。考虑去除x个元素,去除一个大的元素肯定比去除一个小的元素划算,因为大的那个乘以-k必然损失更大,所以Alice在去掉x个元素的情况下肯定是选择最大的x个元素去掉。
直接遍历去掉0-d个元素的所有情况,可以使用前缀和来维护Bob需要乘的值,时间复杂度O(n)
这里有几个正整数,a1,...,an,Alice 会先去掉其中最多 d个数
Bob 接下来会将剩余的数中最多m个数乘以 −k
Alice 想要剩余数之和尽可能大,Bob 想要剩余数之和尽可能小。
假设 Alice 和 Bob 都足够聪明,请问最后剩余数之和是多少。
第一行一个正整数 T,接下来有 T 组数据
每组数据2行
保证 ∑n 不超过105
输出T个整数,表示每组数据的剩余数之和
输入
1
3 1 1 1
4 3 2
输出
1
说明
Alice不会去掉任何数
Bob会把4变为-4,此时剩余数为[-4,3,2],和为1