【USACO题库】1.3.2 Barn Repair修理牛棚
题目大意:
在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 剩下的牛一个紧挨着另一个被排成一行来过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。农夫约翰需要在牛棚之前竖立起新的木板,且他想将他购买的木板总长度减到最少。 给出 M(1<= M<=50),可能买到的木板最大的数目;S(1<= S<=200),牛棚的总数;C(1 <= C <=S) 牛棚里牛的数目,和牛所在的牛棚的编号stall_number(1 <= stall_number <= S),计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。
解题思路:
先排序牛所在的牛棚编号,计算每两个牛棚间的距离,再排序距离,最后用for循环1~S-1,每次在木板总长减去当前最长距离即可。
核心代码: