QOJ.ac

QOJ

Time Limit: 1.3 s Memory Limit: 512 MB Total points: 100

#13089. LED

Statistics

发光二极管(LED)是一种半导体光源,当流过其引脚的电流电压超过阈值时会发光。ACM 研发部门最近报告称,他们成功开发了一种新型 LED,即 ACMOLED。ACMOLED 具有一种特殊特性,即随着电流电压的增加,其发光强度分两个阶段变化,如下图所示。

如图所示,ACMOLED 在电压从 $0$ 到 $V_1$ 的范围内不工作;当电压达到第一个阈值 $V_1$ 时,它发出强度为 $L_1 \ge 0$ 的光;当电压达到第二个阈值 $V_2$ 时,它发出强度为 $L_2 \ge L_1$ 的光。更具体地说,如果 $F(v)$ 是将电压 $v$ 映射到 ACMOLED 发光强度的函数,那么对于四个实数 $L_1, L_2, V_1, V_2$(满足 $0 \le L_1 \le L_2$ 且 $0 < V_1 < V_2$),我们有:

$$F(v) = \begin{cases} 0 & \text{if } 0 \le v < V_1 \\ L_1 & \text{if } V_1 \le v < V_2 \\ L_2 & \text{if } v \ge V_2 \end{cases}$$

目前的问题是,ACM 研发部门尚不知道两个阈值电压 $V_1$ 和 $V_2$ 的确切值,也不知道两个强度值 $L_1$ 和 $L_2$。研究人员计划通过重复实验来估计 ACMOLED 的这四个值。

实验通过施加特定电压的电流并观察 ACMOLED 发出的光强度来进行。在进行了 $n$ 次不同电压值的重复实验后,获得了 $n$ 个元组 $(v_i, l_i)$ 的数据,其中 $l_i$ 是电压 $v_i$ 下观测到的强度。由于观测设备的不精确性及其他原因,实验数据并不准确,可能包含一些误差。尽管如此,他们希望找到一个最佳估计强度函数 $F(v)$,以最小化以下误差函数:

$$\text{error}(F) = \max_{1 \le i \le n} |l_i - F(v_i)|$$

其中 $|x|$ 表示实数 $x$ 的绝对值。

对于给定的 $n$ 个元组数据,编写一个程序,找到一个能使上述误差函数最小化的估计强度函数 $F$,并输出 $\text{error}(F)$ 的值。

输入格式

程序需从标准输入读取数据。输入的第一行包含一个整数 $n$ ($1 \le n \le 300,000$),表示实验数据中元组 $(v_i, l_i)$ 的数量。接下来的 $n$ 行,每行包含两个整数,范围均在 $0$ 到 $10^9$ 之间,分别表示实验数据中每个元组 $(v_i, l_i)$ 的 $v_i$ 和 $l_i$。注意,你可以假设输入中不存在两个元组 $(v_i, l_i)$ 和 $(v_j, l_j)$ 满足 $1 \le i < j \le n$ 且 $v_i = v_j$。

输出格式

程序需向标准输出写入数据。输出仅一行,包含一个实数(保留一位小数),表示 $\text{error}(F)$ 的最小值。

样例

样例输入 1

5
0 0
2 1
3 5
6 7
7 11

样例输出 1

1.0

样例输入 2

10
5 9
8 9
0 0
23 18
26 18
2 0
3 0
13 9
18 9
21 18

样例输出 2

0.0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.