Description
有\(n\)个精灵,你手里有\(A\)个普通球和\(B\)个超级球。对于第\(i\)个精灵,只用普通球捕获的概率为\(p_i\),只用超级球捕获的概率为\(u_i\)。对于每只精灵,你可以不去捕获他,也可以选择用普通球和超级球中的一种去捕获,也可以先用一种再用另一种,但是要注意不能在同一个精灵上使用多个普通球或者多个超级球。
请你安排一种合理的策略,使得捕获精灵的期望尽可能大,并输出最大期望。
\(2\leq n\leq 2000,0\leq A, B\leq n, 0\leq p_i,u_i\leq 1\)。
Solution
wqs二分第二题……
看到个数限制,每个有收益,要素察觉(意味深)
然后考虑往wqs二分上靠,但是限制有两种,那么我们就要考虑用wqs二分套wqs二分了。
然后下面考虑那玩意是不是真的有凸性……这个东西是三维的情况,普通球限制(设为\(x\))、超级球限制(设为\(y\))和收益(设为\(z\))这三维,那么我们要求\(x\)固定的时候\(y\)是凸的,并且每种\(x\)的最优解也是凸的。
固定\(x\)的话,我们考虑\(y\)不断增大的情况。在\(x\)固定且限制存在的情况下,我们会发现每个超级球能给答案带来的最大贡献是一定的,那么考虑将这些贡献排序,我们一定会取前\(y\)项的和。也就是说超级球给答案的贡献是一个前缀和,差分一下就会得到原序列,而原序列是一个递减的序列,所以斜率递减,自然就凸力,,,
那么\(x\)的最优解是凸的,证明也是前缀和这一套理论……\(x\)限制存在时一定会优先选贡献最大的,然后排序之后就相当于前缀和,前缀和差分完了是递减的所以凸。
Code
1 |
|