打打打打打字机|

realFish

园龄:3年2个月粉丝:3关注:0

CF1344D 题解

题意

传送门

给定一个长度为 n 的数组 ai,构造自然数数组 bi 满足:

  • i,bi[0,ai]
  • i=1nbi=k

并最大化 i=1nbi(aibi2)

1n105,1ai109

题解

一道挺新颖的数学题,来记一下。

f(x,i) 表示 x(aix2)。这是一个三次函数,比较难看。

使用一个常见的套路,设 g(x,i)=f(x,i)f(x1,i)。这样就变成了二次函数。

再对其求导,得到 g(x,i)=6x+3。因为 xN,故 g 是单调递减的。

结合 g 的实际意义,不难得出一个 O(klogn) 的算法:动态加 b,用大根堆维护所有 g(bi+1,i),每次取堆顶 i,将 bi 自增。

更进一步,利用 g 的单调性,二分一个 t,对所有 i 求出满足 g(x,i)t 的最大 x。判断 xk 的大小关系即可。复杂度 O(nlog2V)

其实也可以不用二分,因为 g(x,i) 是只和 x 有关的二次函数,直接算就行了。复杂度 O(nlogV)

本文作者:realFish的博客

本文链接:https://www.cnblogs.com/fish07/p/16994402.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   realFish  阅读(18)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起