这题好神……
上学期某天和ljss做了这题,前两天commonc做,结果我俩都只记得这是一道神题……看了会代码终于想起来自己当时觉着这题神就是因为用俩指针扫了俩数组一个添加一个删除还能不重不漏
我们先把数组复制一遍,同时给每个运动员一个sum值代表A*h+B*s,a数组按h排序,b数组按sum排序
按任意顺序枚举v的最小值,不妨直接在a数组里枚举
对于每次外层枚举,令l和r=0
然后在a数组里升序枚举h最小值
用r扫b数组添加球员
把题里的式子移项,可知b[r].sum<=A*minh+B*minv+C时b[r]才可能被选中
这时b[r]还要保证v>minv,同时我们不能让v过大导致h作出负贡献,当只考虑v时就爆了C的时候h就只能作出负贡献才能使r被选中,所以把h从式子里去掉再移项得v<=mins+C/B