QOJ.ac

QOJ

时间限制: 1 s 内存限制: 512 MB 总分: 100

#4206. 事件跳跃

统计

真巧!在确定了最有价值的当代艺术收藏品后,你发现它似乎位于吕贝克(Lübeck)附近。由于你不知道它的确切位置,你想收集更多的信息。幸运的是,在你抵达今年 BOI 的当天,当地艺术界举办了 $N$ 场关于当代艺术的活动。这似乎正是你一直在等待的机会。

为了规划你的活动行程,你将它们编号为 $1$ 到 $N$,其中第 $i$ 场活动在时间 $S_i$ 开始,在时间 $E_i$ 结束。你希望从某场活动 $s$ 开始,并在某场活动 $e$ 结束你的行程。只要你不在参加活动 $e$,你总是会参加当前的活动直到结束*,然后立即切换到另一场正在进行的活动。这意味着你可以从活动 $i$ 切换到活动 $j$,当且仅当 $S_j \le E_i \le E_j$。

显然,切换活动过于频繁会让你看起来很可疑。因此,你希望确定如果你从活动 $s$ 开始并在活动 $e$ 结束,所需要的最少活动切换次数。此外,由于你还不知道何时抵达吕贝克,也不知道何时必须离开去参加晚上的 BOI 注册,你希望针对 $Q$ 组不同的起始活动 $s$ 和结束活动 $e$ 对此进行计算。

输入格式

第一行包含两个整数,活动的数量 $N$ 和你需要确定最少切换次数的查询对数 $Q$。

接下来 $N$ 行描述这些活动。第 $i$ 行包含两个整数 $S_i$ 和 $E_i$,表示活动 $i$ 的开始时间和结束时间。

接下来 $Q$ 行描述查询。第 $i$ 行包含两个整数 $s_i$ 和 $e_i$,表示你希望确定从活动 $s_i$ 开始并以活动 $e_i$ 结束行程所需的最少切换次数。

输出格式

你的程序应输出 $Q$ 行。第 $i$ 行应包含一个整数,表示从活动 $s_i$ 开始并以活动 $e_i$ 结束行程所需的最少切换次数;如果无法实现,则输出 impossible

数据范围

始终满足 $1 \le N, Q \le 100\,000$,$1 \le S_i < E_i \le 10^9$,以及 $1 \le s_i, e_i \le N$。

  • 子任务 1(10 分):对于每场活动,你最多只能切换到另一场活动。
  • 子任务 2(10 分):$N \le 1\,000$ 且 $Q \le 100$。
  • 子任务 3(15 分):$N \le 5\,000$。
  • 子任务 4(15 分):$Q \le 100$。
  • 子任务 5(20 分):没有活动完全包含在另一场活动中,即不存在两个 $i \neq j$ 满足 $S_j \le S_i < E_i \le E_j$。
  • 子任务 6(30 分):无附加限制。

* 提前离开是不礼貌的——尽管没有人会抱怨你迟到,因为你显然是一位重要且忙碌的艺术评论家。

样例

输入 1

5 2
1 3
2 4
4 7
7 9
3 7
1 4
3 2

输出 1

2
impossible

说明 1

在第一个样例中,可以通过从活动 1 切换到活动 5,再切换到活动 4 来从活动 1 开始并以活动 4 结束,这导致了两次活动切换。然而,无法从活动 3 开始并以活动 2 结束,因为活动 2 在活动 3 之前结束。

输入 2

8 5
1 2
3 4
1 5
6 7
5 10
10 20
15 20
999999999 1000000000
1 6
1 7
2 4
3 3
5 8

输出 2

3
4
impossible
0
impossible

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.