- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
请考虑以下问题:
在一个 session 上有n
个演示文稿,每个演示文稿都有开始时间和结束时间。你不能参加所有这些,因为其中一些重叠。每个演示文稿都有与您参加它们的愿望相对应的值(value)。
在 O(n log n)
时间内,使用动态规划算法找到一组具有最大总值(value)的演示文稿,使得它们的时间都不重叠。
我的想法:
通过使用动态规划,我们将检查每个演示文稿,存储其开始时间、结束时间、值,一次一个(并比较是否与先前存储的数据重叠)。但是,如何在 O(n log n)
时间内完成此操作?
最佳答案
按结束时间对间隔进行排序(这是 O(nlogn)
),然后应用遵循递归公式的 DP 解决方案:
Let start[1,...,n] be an array containing start times
Let end[1,....,n] be an array containing end times
Let values[1,...,n] be an array containing values of each presentations
Assume arrays are already sorted, such that the `i`th element in all arrays refer to the same presentation, and the array end is in ascending order.
D(0) = 0
D(i) = max { D(i-1), D(j) + values[i] } where j is the highest index such that end[j] <= end[i]
在上面的递归公式中:
j
值可以通过二进制搜索轻松完成(因为 end
已排序)。i
是当前“候选”表示。D(j)
) - 或者你不参加并继续下一位候选人。D(n)
表示。 中的 D(j)+values[i]
max{}
函数 - 添加 i
,否则 - 你不参加它。关于algorithm - 动态规划 : design an algorithm that is in O(n log n) time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30996455/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!