修理牛棚问题
东华OJ49题 修理牛棚
题目如下
解题思路
这道题乍一看其实会有点懵,不知如何下手,因为这涉及到了如何分组的问题。直接对牛棚编号序列进行分组没啥头绪,但是按照常理就是把离得近的一群分为一个组,按照这样的想法延申出一种解题思路:
- 我们先将相邻两个牛棚的距离算出来,保存到一个数组或者向量中
- 然后因为要分出M组,那其实就相当于切了M-1刀,那该怎么切呢?
- 按照常理切呗,离得远的切
- 所以找到距离数组中最大的M-1个距离切
这样切完就找到了M个分组,大体思路就是这样。
当然我们还需要注意一些小细节:
- 当只有一块木板时,直接用最大的牛棚编号 -最小的牛棚编号即可
- 当木板数>=牛棚个数时,最小距离就是牛棚个数
- 输入的时候牛棚编号未必有序,所以需要排序
代码实现
实现时的一些小技巧:在距离数组中,在哪切一刀,就把那个值变成1,最后将距离数组中的值全部相加,最后加1即是结果。
__EOF__

本文作者:Fortunater
本文链接:https://www.cnblogs.com/Fortunater/p/16034792.html
关于博主:不急不躁,一步一步走向技术巅峰
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Fortunater/p/16034792.html
关于博主:不急不躁,一步一步走向技术巅峰
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步