题解
首先将贡献转换为负,也就是先设
ans=∑ini∗bi
然后再考虑合并,即把套娃i套进套娃j中,不难算出贡献是
−bj∗outi
那么,问题就转换成对于每一个套娃选取套进哪一个套娃里贡献总和最”大”。
先将其按照b排序,我们可以贪心地做。
对于套娃x,y有
bx>by
,假如c,d有
outc>outy
都可以套进他们,那么因为
a>=b,c>=d,
所以
(a−b)(c−d)>=0
所以
ac+bd>=ad+bc
所以x套进c,y套进d更优秀。
所以说,从大到小按b排序后,顺序考虑套娃x,我们选一个可以套进他的out最大的套娃。