0
已解决
王雪阳
高级守护
高级守护
0
已采纳
李牧之
新手光能
新手光能
他问的是最少用多少钱就可以达到目的,所以说只要最后培养完和砍完后他要求的树的高度都有就行
就比如样例上的
3 1 1
1 2 2
并不用一一对应,他要求1格高,并不用用3格的树去砍,因为本来就有1格高的树现在剩下
3 1
2 2
把3格高的树砍成2格,把1格高的树培养成2格,共需要11元。
————————————分割线——————————————————————————
现在再讲一讲思路,首先,先把M和B数组从大到小分别排序,然后一个一个比较,如果相等,不加钱;Mi<Bi,钱就加上(bi-mi)*x,
Mi>Bi,钱加上(Mi-Bi)*y;
————————————分割线——————————————————————————
核心代码:
for(int i=1;i<=N;i++){
if (M[i]<B[i]) ans+=(B[i]-M[i])*X;
if (M[i]>B[i]) ans+=(M[i]-B[i])*Y;
}
//排序自己写
0
0