题解:CF739E Gosha is hunting

link

初学 wqs 二分,看了好久才懂题解qwq

首先这题显然可以费用流,进而可证答案具有凸性质,即如果设 f(x) 表示 a=x 时的答案,则 f(x) 是一个上凸的函数。由于凸函数相邻两点间的斜率单调不增,所以可以考虑 wqs 二分。

设当前二分到的斜率时 k,则我们每选一个 A 球,就给答案减去 k。个人感性理解:wqs 二分的目的,就是找到一条在点 (a,f(a)) 处与凸包相切的直线的斜率,由于相切,所以在上凸函数中,斜率为 k 的直线在过点 (a,f(a)) 时截距 b=f(x)kx 最大,由于 x 表示选了几个 A 球,因而每选一个 A 球就给答案减 k

之后我们就需要求出最大的答案(截距),以及答案最大时需要选几个 A 球。考虑一个点 i 由不选 B 变成选 B 的贡献是 max{pi+uipiuik,ui}max{pik,0},因而按这个值从大到小排序选 b 个即可,每个的贡献是 max{pi+uipiuik,ui}。在没有选 B 的点中,每个的贡献是 max{pik,0}

如果需要选的 A 球数 >a 则说明斜率小了,反之则大了,这样二分下去即可(斜率单调不增)。最后用二分到的 k 再做一遍贪心,将其答案加上 ka 即是最终答案,时间复杂度 O(nlog2n),进行神秘归并排序后能做到 O(nlogn)(?)。

code

posted @   FugiPig  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示