首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到滚动所能覆盖的最小块数,以便修复所有损坏的块?

找到滚动所能覆盖的最小块数,以便修复所有损坏的块?
EN

Stack Overflow用户
提问于 2016-08-22 00:15:27
回答 1查看 89关注 0票数 0

一条分成"_ **__*___“的道路,其中”*“代表损坏的街区。有一个用来修路的压路机。Rollar具有固定长度K。给定损坏位置(N)和rollar K的大小,找出rollar可以覆盖的最小块数,以便修复所有损坏的块。Rolar可能不会持续维修。可能会有差距。you can read it here.

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 17:42:13

假设损坏的位置是pos,pos1,...,posn-1。创建dp数组。这里,dpidx表示滚轮为修复从索引idx到n-1的损坏而覆盖的最小块数,它从索引idx开始。现在,dpn-1=k;对于任何其他指数,假设i,让我们计算dpi:如果辊保持在posi,那么辊将覆盖到posi+k。假设posi+k之后的损坏位置在索引j。现在,有两种可能的情况。1.滚轮向上滚动到覆盖索引j的位置。ans1=dpj+1+( ans2=dpj+k -posi) 2.滚轮在索引j处再次开始。然后,dpi=min(ans1,ans2)索引搜索可以使用二进制搜索来完成。因此,总体时间复杂度: O(n*log(n))。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39066269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档