您的位置:首页 > Web前端 > JavaScript

jzoj4064 JSOI2015 套娃 [贪心]

2017-02-14 19:19 225 查看


题解

首先将贡献转换为负,也就是先设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最大的套娃。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: