当前位置: 首页 > 知识库问答 >
问题:

最大覆盖不相交间隔

干浩阔
2023-03-14

[2,30],[25,39],[30,40]溶胶[2,30]

共有1个答案

闻华容
2023-03-14

这个问题可以在O(k log(k))中解决。

首先,按照区间的上界(b_is)对其进行排序。设I(1),I(2),...,I(k)为排序间隔的列表。也就是,

b_1 <= b_2 <= ... <= b_k

w(i)表示间隔的长度i(i)。也就是,

w(i) = b_i - a_i
    null
f(i) = w(i) + max{f(j) | b_j < a_i}

我将用第一个输入示例演示计算:

I(1)=[1, 4],  w(1)=3
I(2)=[3, 5],  w(2)=2
I(3)=[5, 9],  w(3)=4
I(4)=[7, 18], w(4)=11

对于i=1,2,3,4,我们计算F(i):

f(1) = w(1) + max{None} = 3 
    f(1) intervals: {I(1)}

f(2) = w(2) + max{None} = 2 
    f(2) intervals: {I(2)}

f(3) = w(3) + max{f(1)} = 4 + 1 = 5 
    f(3) intervals = {I(1), I(3)}

f(4) = w(4) + max{f(1), f(2)} = 11 + f(1) = 11 + 3 = 14 
    f(4) intervals = {I(1), I(4)}

最大F(i)F(4),它对应于区间集{i(1),i(4)},最优解。

 类似资料:
  • 我不理解javadoc中的这一行(在“API注释”子标题下): StringBuilder实现可比较但不覆盖等于。因此,StringBuilder的自然顺序与equals不一致。 我是Java的初学者,你能简单地解释一下吗?

  • 问题内容: 我对react.js还是很陌生,并且正在通过构建砌体样式布局进行试验。 我将每个元素呈现给DOM,然后需要遍历每个项目并根据前面的元素应用x和y位置。 初始模型如下所示: (我只显示了一个项目以使内容简短)。 完成循环并获取x和y数据后,我想将其应用于podStyle对象。我用以下数据调用setState: 这似乎从模型中删除了所有当前数据,而只剩下了podStyle数据。我是否误解了

  • 我正在使用Spring Boot 2.1.6.RELEASE,我想知道应该如何使用? 配置示例: 和位于不同的模块中。 错误: 无法注册在类路径资源[com/example/autoconf/configuration/app configuration . class]中定义的bean“foo”。已在类路径资源[com/my/configuration/myautoconfiguration .

  • 所以我有以下 2 个数组,键为 2016 和 现在,在数组合并之后,我应该得到一个具有2个数据键的数组,和,但是我得到了一个具有3个键的数组。 为什么会这样?正常吗? 信息: PHP 5.6.30 (cli) (构建时间: Feb 7 2017 16:18:37) 版权所有 (c) 1997-2016 PHP 组 Zend Engine v2.6.0, 版权所有 (c) 1998-2016 Zen

  • 几周前有人在这里发布了这个问题,但它看起来非常像没有事先研究的家庭作业,OP在获得一些反对票后立即删除了它。 不过,这个问题本身很有趣,我已经想了一个星期,没有找到令人满意的解决方案。希望有人能帮忙? 问题如下:给定一个N个整数间隔的列表,其边界可以取从到的任何值,找到最小的整数使得不属于任何输入间隔。 例如,如果给定列表(N=4),则算法应返回9。 我能想到的最简单的解决方案运行在O(n log

  • 4.3 ROS工作空间覆盖 所谓工作空间覆盖,是指不同工作空间中,存在重名的功能包的情形。 ROS 开发中,会自定义工作空间且自定义工作空间可以同时存在多个,可能会出现一种情况: 虽然特定工作空间内的功能包不能重名,但是自定义工作空间的功能包与内置的功能包可以重名或者不同的自定义的工作空间中也可以出现重名的功能包,那么调用该名称功能包时,会调用哪一个呢?比如:自定义工作空间A存在功能包 turtl