快速且最长的过山车序列
数据结构与算法
2019-08-08 v2
摘要
对于 ,k-过山车序列是指其每个极大连续递增或递减子序列长度至少为 的数序列;-过山车序列简称为过山车序列。给定一 distinct 数序列,我们关注计算其最大长度(不必连续)的 -过山车子序列。Biedl 等人 [ICALP 2018] 已证明每个含 个 distinct 实数的序列在 时包含长度至少为 的过山车序列,且此类序列中最长过山车可在 时间内算出。他们还证明每个含 个 distinct 实数的序列包含长度至少为 的 -过山车序列,并给出了在长度为 的序列中计算最长 -过山车的 时间算法。本文中,我们给出一种 时间算法,计算含 个 distinct 实数的序列中最长 -过山车的长度;因此,对于常数 ,我们的算法在最优线性时间内计算最长 -过山车的长度。该算法可轻易调整以输出相应 -过山车。特别地,这改进了 Biedl 等人 [ICALP 2018] 的结果,表明最长过山车可在最优线性时间内算出。我们还提出一种在 时间内计算最长 -过山车长度的算法,即对于大至 的 也是亚二次的。同样,过山车可轻易重构。最后,我们给出任何基于比较的计算最长 -过山车长度的算法在比较次数上的 下界。
引用
@article{arxiv.1810.07422,
title = {Fast and Longest Rollercoasters},
author = {Paweł Gawrychowski and Florin Manea and Radosław Serafin},
journal= {arXiv preprint arXiv:1810.07422},
year = {2019}
}