感人片段

2023-11-23

任何人都可以建议我为此的算法。

您将获得 x 轴上 N 个线段的起点和终点。 这些片段中有多少可以被恰好两条垂直于它们的线接触到,即使是在它们的边缘?

输入示例:

3
5
2 3
1 3
1 5
3 4
4 5
5
1 2
1 3
2 3
1 4
1 5
3
1 2
3 4
5 6

示例输出:

Case 1: 5
Case 2: 5
Case 3: 2

解释 :

  • 情况 1:我们将在点 2 和 4 处绘制两条与 X 轴相交的线(平行于 Y 轴)。这两条线将接触所有五个线段。
  • 情况 2:即使一条线在 2 处穿过 X 轴,我们也可以触及所有点。
  • 情况3:在这种情况下不可能触摸超过两个点。

限制条件:

1 ≤ N ≤ 10^5
0 ≤ a < b ≤ 10^9

假设我们有一个有效支持以下操作的数据结构:

  1. 添加一段。

  2. 删除一个段。

  3. 返回覆盖一个点(即“最佳”点)的最大线段数。

如果有这样的结构,我们可以通过以下方式有效地使用初始问题:

  1. 让我们创建一个事件数组(一个事件用于每个段的开始,一个事件用于结束)并按 x 坐标排序。

  2. 将所有段添加到神奇的数据结构中。

  3. 迭代所有事件并执行以下操作:当段开始时,将当前覆盖的段数加一并将其从该数据结构中删除。当一个段结束时,将当前覆盖的段的数量减一,并将该段添加到神奇的数据结构中。在每个事件之后,用当前覆盖的段数的值(它显示了与当前事件对应的点覆盖了多少段)加上上述数据结构返回的最大值(它显示了我们如何可以以最佳方式选择另一个点)。

如果这个数据结构可以执行所有给定的操作O(log n),那么我们有一个O(n log n)解决方案(我们对事件进行排序,并对排序后的数组进行一次传递,为每个事件对此数据结构进行恒定数量的查询)。

那么我们如何实现这个数据结构呢?嗯,线段树在这里工作得很好。添加段就是向特定范围添加一个。删除一个段就是将特定范围内的所有元素减一。获取最大值只是线段树上的标准最大值操作。因此,我们需要一个支持两种操作的线段树:向范围添加一个常量并获取整个树的最大值。可以在O(log n)每次查询的时间。

还有一点需要注意:标准线段树要求坐标很小。我们可以假设它们永远不会超过2 * n(如果不是这种情况,我们可以压缩它们)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

感人片段 的相关文章

  • 使用并集查找(又名不相交集)检测图是否是二分图

    我正在 Spoj 上做一个问题 基本上可以简化为检测图是否是二分图 我正在尝试使用 dfs 为图表着色 但它太慢了 有人评论这个 没有 bfs 没有 dfs 没有二部图 简单的并查集就可以做到 确实速度很快 提示 1 偶数长度的环不会影响两
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 计算数组中的唯一元素而不排序

    在 JavaScript 中 以下代码将查找数组中的元素数量 假设数组中至少有一个元素 arr jam beef cream jam arr sort var count 1 var results for var i 0 i lt arr
  • 如何在文件系统中存储图像

    目前 我已将图像 最大 6MB 作为 BLOB 存储在 InnoDB 表中 随着数据大小的增长 夜间备份变得越来越慢 阻碍了正常性能 因此 二进制数据需要进入文件系统 指向文件的指针将保存在数据库中 数据具有树状关系 main site u
  • 根据 Pandas 中的列表对多列进行排序

    感谢有关如何根据 pandas 中的倍数列表对给定多列进行排序的任何提示 如下所示 import pandas as pd sort a a d e sort b s1 s3 s6 sort c t1 t2 t3 df pd DataFra
  • 在 O(n) 时间内排序?

    我被这个问题困扰了 2周 知道如何处理它吗 令 L 为 n 个不同整数的列表 假设 L 的 x 的元素在 1 750 范围内 设计线性排序算法对 L 的元素进行排序 我已经尝试过插入排序 但我不确定我的方法是否正确 Construct an
  • 如何在Python中按AaB而不是ABa顺序对字符串进行排序

    我正在尝试对字符串进行排序 为 punnetsquare 制作基因型 我目前的实现是 unsorted genotype ABaB sorted genotype sorted list unsorted genotype sorted s
  • 用于开始和/或包含搜索的最快字符串集合结构/算法是什么

    我有以下情况 我有一个大的字符串集合 比如说 250 000 平均长度可能是 30 我要做的就是在这些搜索中进行许多搜索 大多数搜索都是 StartsWith 和 Contains 类型的 该集合在运行时是静态的 这意味着选择的集合的初始读
  • n 或 nlog(n) 比常数时间或对数时间更好吗?

    在 Coursera 上的普林斯顿教程中 讲师解释了遇到的常见增长顺序函数 他说 线性和线性算术运行时间是 我们努力的目标 他的推理是 随着输入大小的增加 运行时间也会增加 我认为这是他犯了错误的地方 因为我之前听过他提到线性增长顺序对于高
  • 如何在不声明新数据的情况下更改类型(String,Int)元组的 Ord 实例?

    我正在尝试对类型列表进行排序 String Int 默认情况下 它按字符串排序 然后按整数排序 如果字符串相等 我希望它是相反的 首先比较整数 然后如果相等则比较字符串 另外 我不想切换到 Int String 我找到了一种通过定义实例来实
  • Python排序算法[重复]

    这个问题在这里已经有答案了 我在Python中实现了不同的排序算法 以更好地理解它们 我想知道Python的内置排序方法实现什么类型的排序 这是一个叫做Timsort http en wikipedia org wiki Timsort由
  • 按键对 JavaScript 对象进行排序

    我需要按键对 JavaScript 对象进行排序 因此 以下内容 b asdsad c masdas a dsfdsfsdf 会成为 a dsfdsfsdf b asdsad c masdas 这个问题的其他答案已经过时 与实施现实不符 并
  • 平铺单纯形噪声?

    我 作为业余爱好者 对伪随机噪声生成很感兴趣 特别是 Perlin 和 Simplex 算法 Simplex 的优点是速度 尤其是在更高的维度上 但 Perlin 可以相对容易地平铺 我想知道是否有人知道平铺单纯形算法 固定维度就好 泛型更
  • O(1) 算法确定节点是否是多路树中另一个节点的后代?

    想象一下下面的树 A B C D E F 我正在寻找一种方法来查询 F 是否是 A 的后代 注意 F 不需要是directA 的后代 在这种特殊情况下这是正确的 只需要针对更大的潜在后代节点池测试有限数量的潜在父节点 当测试一个节点是否是潜
  • 如何计算数据框中按另一列的列值分组的一列的连续字符串值?

    我有以下数据框 Levels Labels Confidence 0 Hands 0 8 0 Leg 0 7 0 Eye 0 9 1 Ear 0 9 1 Eye 0 8 2 Hands 0 9 2 Eye 0 8 3 Eye 0 8 我想检
  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex

随机推荐

  • 将 uuid.h 包含到 Android NDK 项目中

    我正在使用 NDK 将 C 程序移植到 Android 上 该程序使用uuid h or uuid uuid h库取决于可用的库 当我编译程序时 给出错误消息uuid h No such file or directory 我是 NDK 的
  • HTML5 数据库 API:同步请求

    我目前在 html5 iphone web 应用程序上使用客户端数据库 在我的代码中 我需要检查本地数据库中是否存在一行 function isStarted oDB var ret null oDB query sql params fu
  • 哪些性能计数器可用于识别 ASP.NET 瓶颈?

    鉴于此处的图表 我应该注意什么来识别瓶颈 正如您所看到的 请求在负载下平均花费近 14 秒 其中大部分时间归因于 New Relic 分析数据中的 CLR 在特定页面的性能细分中 它将大部分时间归因于 WebTransaction aspx
  • SQL Azure:与 SQL Azure 的连接引发异常

    当我从代码连接到 SQL Azure 时 出现以下错误 我能够从 SQL Server Management Studio 成功连接到 SQL Azure System Data SqlClient SqlException 建立与 SQL
  • 通过 PHP 解析 JavaScript 文件

    我有一个 JavaScript 文件 我想在其中包含一些 php 代码 问题是我在 PHP 上有一些定义 我也想在 JS 上使用它们 有没有办法在 HTML 中包含 js 文件 允许服务器首先使用 php 解释它 在下载到客户端之前 谢谢
  • Numpy 中的结构化数组没有二元运算符吗?

    好的 在学习完 numpy 结构化数组的教程后 我可以创建一些简单的示例 from numpy import array ones names scalar 1d array 2d array formats float64 3 float
  • 我可以将 TLS 与 Send-MailMessage cmdlet 结合使用吗?

    我正在尝试使用 PowerShell 发送电子邮件 但需要使用 TLS 我可以使用 Send MailMessage cmdlet 执行此操作吗 这是我的代码 file c Mail content txt if test path fil
  • 仅从数据库中类似日志的表中读取新行

    我们遇到这样的情况 多台服务器将行块插入关系数据库的表中 而一台服务器偶尔从表中读取新数据 该表在概念上是某种日志文件 数据仅插入但从未修改 读取服务器显示日志的尾部 有没有办法让读取服务器只读取新数据 我们可以按照自己的意愿自由地构建表格
  • Parallel.For 和 Parallel.For 之间有区别吗?

    之间有区别吗TParallel For and TParallel For 两者都可以在 Delphi 10 Seattle 中编译 那么我应该坚持哪一个呢 方法定义为TParallel For需要 符号来转义 areserved word
  • 为什么 gcloud 命令启动缓慢?

    只是打字gcloud如需帮助请花 5 秒钟 gcloud gcloud 0 30s user 0 13s system 7 cpu 5 508 total gcloud version Google Cloud SDK 128 0 0 al
  • 在运行时从不同的文件加载 Properties.Settings

    有没有办法从默认文件以外的其他文件加载设置App config运行时文件 我想在加载默认配置文件后执行此操作 我用Settings SettingsVisual Studio 中的 GUI 来创建我的App config为我归档 配置文件最
  • 带边框/轮廓的六边形形状

    我知道可以使用以下代码创建六边形形状 hex before content width 0 height 0 border bottom 30px solid 6C6 border left 52px solid transparent b
  • 在同一个 apache 服务器上运行 django 和 Flask

    我正在尝试在同一个 apache 服务器上运行 django 和 Flask WSGISocketPrefix var www wsgi
  • 字符串变量可以设置多少个字符?

    我有一个字符串类型的变量 例如string test 我可以设置多少个字符进行测试 谢谢 所有引用类型 如字符串 实例的最大大小是有限的 由 CLR 改为 2GB 由于 NET 中的一个字符占用 2 个字节 这意味着一个字符串最多可以容纳大
  • StreamProvider 不更新状态

    我正在尝试使用StreamProvider from this很棒的包 但我一直在努力让特定的流正常工作 我创建一个StreamController我用它来添加数据Stream通过其Sink 所有这一切似乎都运作良好 但是当使用这个Stre
  • 允许 PHP 会话延续到子域

    我对所有用户数据以及当用户访问其个人资料时使用 PHP 会话 不是 cookie 除了会话 id cookie user mydomain example他们会立即 注销 直到删除子域 有没有办法接受来自所有域的会话 只要它 mydomai
  • Internet Explorer 中的 标记

    既没有标签也不text decoration blink Internet Explorer 支持 css 中的样式 有什么技术可以在 IE 中制作闪烁文本吗 如果可能的话 避免眨眼 这会惹恼别人 但你可以用 JS jQuery 来做到这一
  • ASP.NET Identity 2 支持匿名用户吗?

    我想允许匿名 尚未注册和注册的用户在我的网站上发帖 Posts table Id int Subject nvarchar Body nvarchar UserId uniqueidentifier 该项目使用最新的 MS 技术 ASP N
  • 将 GVim 配色方案更改为类似于命令行 Vim

    是否可以使 GVim 的配色方案与命令行版本 Vim 中的配色方案完全匹配 与白色背景的 GVim 相比 我更喜欢 Vim 的颜色 但我仍然想使用 GVim 因为 Shift 键在命令行版本上映射得不太好 是的 可以使 gvim 与终端 V
  • 感人片段

    任何人都可以建议我为此的算法 您将获得 x 轴上 N 个线段的起点和终点 这些片段中有多少可以被恰好两条垂直于它们的线接触到 即使是在它们的边缘 输入示例 3 5 2 3 1 3 1 5 3 4 4 5 5 1 2 1 3 2 3 1 4