2018宁夏邀请赛/2019宁夏网络赛 Fight Against Monsters - 贪心

有关的梗请移步某乎。真·百度之星

铜牌题,给 n n n个怪,每个怪需要打 b i b_i bi轮才能打死,在没被打死之前,每轮释放 a i a_i ai的伤害。求释放的最小伤害。

考虑两个怪,先打怪兽1: b 1 ∗ ∑ a i + b 2 ∗ ( ∑ a i − a 1 ) b_1*\sum a_i +b_2*(\sum a_i -a_1) b1ai+b2(aia1)
先打怪兽2,受到的伤害: b 2 ∗ ∑ a i + b 1 ∗ ( ∑ a i − a 2 ) b_2*\sum a_i +b_1*(\sum a_i -a_2) b2ai+b1(aia2)
若考虑伤害最小
b 1 ∗ ∑ a i + b 2 ∗ ( ∑ a i − a 1 ) < b 2 ∗ ∑ a i + b 1 ∗ ( ∑ a i − a 2 ) b_1*\sum a_i +b_2*(\sum a_i -a_1) < b_2*\sum a_i +b_1*(\sum a_i -a_2) b1ai+b2(aia1)<b2ai+b1(aia2)
⇒ b 1 ∗ a 2 < b 2 ∗ a 1 \Rightarrow b_1*a_2 < b_2*a_1 b1a2<b2a1
直接将 b i a i \dfrac{b_i}{a_i} aibi排序可能会有精度问题,建议重载运算符后用优先队列实现。

你可能感兴趣的:(贪心)