美文网首页
贪心-区间覆盖

贪心-区间覆盖

作者: 星回壹玖 | 来源:发表于2019-10-04 22:50 被阅读0次

    例题:

    数轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定的线段[s,t]

    思路:

    1. 枚举所有可用区间,把可能覆盖目标区间的区间(只要不是起点终点都小于s或都大于t就符合条件)记录下来,并按起点升序和长度降序排序
    2. 记录未覆盖区间的起点s,枚举所有可能覆盖目标区间的区间
    3. 如果当前区间的起点ai大于未覆盖区间的起点s,则覆盖失败(ps.此时剩余的所有区间都无法覆盖s这个点),结束
    4. 选用区间:否则选取第一个(最长的),将未覆盖区间的起点重新赋值为bi,依然记为s(原因是[s,bi]已经被[ai,bi]覆盖,剩下未覆盖区间为[bi,t])
    5. 如果未覆盖区间起点s大于未覆盖终点t(说明[s,t]完全被[ai,bi]覆盖) ,覆盖成功,结束
    6. 跳过起点为 ai的其余区间,返回第3步,继续枚举
    每次选用的区间都是当前最优,符合贪心原则

    相关文章

      网友评论

          本文标题:贪心-区间覆盖

          本文链接:https://www.haomeiwen.com/subject/zfaspctx.html