QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2025-12-12 23:49:05

Last updated: 2025-12-12 23:49:09

Back to Problem

题解

设每个区间的左端点为 $a_i$,那么 $I_{i,j}=\max\{0,10^6-|a_i-a_j|\}$。

我们分别考虑每个 $I_{i,j}>0$ 的边组成的连通块,尝试构造一组 $a_i$,然后检查是否正确。

从任意的点开始,不断向两边扩展。假设我们扩展出的最左边的点是 $u$,最右边是 $v$。找到剩下的点中 $\max\{I_{u,i},I_{v,i}\}$ 最大的点,如果 $I_{u,i}>I_{v,i}$ 那么 $i$ 在 $u$ 的左侧,否则 $i$ 在 $v$ 的右侧,于是就能确定 $a_i$。

时间复杂度 $O(n^2)$。

Comments

No comments yet.