2023.9.1 AT practise

发布时间 2023-09-01 21:55:55作者: GloriousCc

ARC072F

设“热量”为 \(T_1V_1+T_2V_2+...\),最后要求的温度就是 \(\dfrac{T_1V_1+T_2V_2+...}{V_1+V_2+...}\)
由于最后体积是恒定的,那么我们只需要解决热量的问题即可。

\(f_{i,x}\) 表示第 \(i\) 天晚上只能留下 \(x\) 升水的最大热量。
如果我们把写成函数 \(f_i(x)\),我们发现其一定是上凸的函数。
因为我们有这样一个策略:
若加入的水温度高,那么我们肯定不想让其跟热量低的水混合。(斜率大)
若加入的水温度低,那么我们肯定想让其跟热量高的水混合。(斜率低)
那么我们可以维护凸壳。

每天加水的操作就是相当于在底部加了一个矢量,然后处理一下这个凸壳。

大抵是如此,我们用单调队列维护凸壳即可。