问题标题: 酷町堂:2610 裁植树木

0
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
我要回答