#P15640. [ICPC 2022 Tehran R] Simplification

[ICPC 2022 Tehran R] Simplification

题目描述

Amin 会时不时地记录他的股票价格,作为一个数据点 (ti,pi)(t_{i}, p_{i}) 记在笔记本上,其中 pip_{i} 是股票在第 tit_{i} 天的价格。这些数据点构成的序列代表了一个分段线性函数 FF,展示了一段时间内的价格历史。实际上,FF 通过直线段连接每一对连续的点。如果某一天 tt 没有记录价格,则可以用 F(t)F(t) 作为估计值。

由于他长期跟踪股票价格,收集的数据变得越来越大。因此,他决定通过丢弃一些已记录的数据点来缩减数据,并用剩余的点构造一个新的分段线性函数 FF'FF' 被称为 FF 的一个 “简化”。Amin 希望以这样一种方式创建简化,使得 FF'FF 的一个良好近似。为此,他定义了一个误差度量如下。

FF 定义在一个严格递增的天数序列 L=t1,,tnL = \langle t_{1}, \ldots, t_{n} \rangle 上,而 FF' 定义在 LL 的一个子序列 L=t1,,tmL' = \langle t'_{1}, \ldots, t'_{m} \rangle 上,其中 t1=t1t'_{1} = t_{1}tm=tnt'_{m} = t_{n},并且对于 1im1 \leq i \leq mF(ti)=F(ti)F'(t'_{i}) = F(t'_{i})。(我们称 mmFF'大小。)FF'误差定义为所有 1kn1 \leq k \leq nF(tk)F(tk)|F'(t_{k}) - F(t_{k})| 的最大值。例如,在下图中,我们有 66 个数据点,标记为 1166,其坐标与第二个样例输入中给出的相同,而 FF' 是一个大小为 33 的简化,包含数据点 114466。在此图中,FF 用实线描绘,FF' 用虚线描绘。FF' 的误差度量由点 22FF' 的垂直距离体现。

:::align{center} :::

Amin 的目标是在 FF' 的误差不超过给定值 δ\delta 的前提下,最小化 FF' 的大小。

输入格式

输入的第一行包含一个正整数 nn2n20002 \leqslant n \leqslant 2000),表示 FF 的大小。接下来的 nn 行,每行包含两个整数 tit_{i}, pip_{i}1ti,pi1061 \leqslant t_{i}, p_{i} \leqslant 10^{6}),其中 pip_{i} 是股票在第 tit_{i} 天的价格。最后一行包含误差限制 δ\delta,它是一个不超过 10610^{6} 的非负整数。

输出格式

在输出中,打印 FF' 的最小可能大小。

3
1 10
3 100
10 20
90
2
6
10 10
20 20
35 14
50 20
60 10
70 10
8
3

提示

翻译由 DeepSeek V3.2 完成