QOJ.ac

QOJ

Límite de tiempo: 4 s Límite de memoria: 512 MB Puntuación total: 100

#2423. 从黑客到告密者

Estadísticas

由于你无法靠参加计算机科学竞赛的奖金维持生计,你决定投身艺术行业——更准确地说,你选择了一家特定的博物馆作为你作为艺术大盗的出道之地。不幸的是,这家博物馆守卫森严:有 $K$ 名守卫在楼内巡逻,每名守卫都在博物馆内沿着各自简单的闭合路径巡逻。

为了协调你的行动,你使用了一张地图,该地图将博物馆描述为一组连接 $N$ 个路口的 $M$ 条走廊,路口编号从 $1$ 到 $N$。你从路口 $1$ 出发,而你的目标——一件珍贵的展品——位于路口 $N$。当然,人们可以从任何路口到达博物馆的任何其他路口,但你不确定是否可以在不被发现的情况下做到这一点,也就是说,在不与守卫处于同一路口且不在走廊中与守卫擦肩而过的情况下。

幸运的是,你弄到了守卫值班表。因此,你知道每名守卫在开始时的位置以及他所走的路线。每一分钟,守卫都会从他当前的位置移动到他路线上的下一个路口,而你可以选择停留在当前路口或移动到相邻的路口。你观察到,没有两名守卫的路线相交,且你的起始位置和目标位置都不在任何守卫的路线中。

编写一个程序,利用这些信息计算你安全到达目标*所需的最短时间(以分钟为单位),或者判定这是不可能的。

输入格式

输入的第一行包含上述整数 $N$ 和 $M$。接下来的 $M$ 行,每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le N, u \neq v$),表示有一条走廊直接连接路口 $u$ 和 $v$。保证任意两个给定的路口之间最多只有一条走廊直接相连。

下一行包含上述单个整数 $K$。随后有 $K$ 行;其中第 $i$ 行包含一个整数序列,描述第 $i$ 名守卫的路线如下:第一个整数 $\ell_i$ 给出了路线上的不同路口数量。然后是 $\ell_i$ 个两两不同的整数 $v_1, \dots, v_{\ell_i}$,指定了守卫在其路线上经过的路口序列。更准确地说,守卫从路口 $v_1$ 开始,一分钟后他将到达 $v_2$,以此类推;在 $\ell_i$ 分钟后,他将再次回到 $v_1$。

输出格式

你的程序应输出一行。这应包含一个整数,即你安全到达目标所需的最短时间(以分钟为单位),如果无法实现,则输出字符串 impossible

数据范围

我们始终有 $1 \le N \le 250\,000$,$1 \le M \le 3\,000\,000$,$3 \le \ell_i \le 1\,500$,且 $\ell_1 + \dots + \ell_K \le 2\,750$。

  • 子任务 1 (5 分):$N, M \le 100\,000$,$K = 1$,$\ell_1 \le 125$
  • 子任务 2 (10 分):$N, M \le 100\,000$,$\ell_1 + \dots + \ell_K \le 125$,且没有走廊连接两名不同守卫的路线。
  • 子任务 3 (10 分):$\ell_i \le 200$,$\ell_1 + \dots + \ell_K \le 350$,且没有走廊连接两名不同守卫的路线。
  • 子任务 4 (10 分):没有走廊连接两名不同守卫的路线。
  • 子任务 5 (25 分):$\ell_1 + \dots + \ell_K \le 125$
  • 子任务 6 (20 分):$\ell_i \le 200$,$\ell_1 + \dots + \ell_K \le 350$
  • 子任务 7 (20 分):无其他限制。

  • 一旦你到达展品处,你将打开窗户,利用你在全国计算机科学竞赛中赢得的精美翼装离开博物馆,因此无需规划安全的返回路线。 † 当然,你是一位永远不会对守卫动手的绅士大盗!

样例

样例输入 1

6 6
1 2
2 3
3 4
4 5
5 2
5 6
1
4 3 2 5 4

样例输出 1

4

样例输入 2

6 6
1 2
2 3
3 4
4 5
5 2
5 6
1
4 4 5 2 3

样例输出 2

5

样例输入 3

11 13
1 2
2 3
3 4
4 2
3 5
5 6
6 7
7 5
6 8
8 9
9 10
10 8
9 11
3
3 4 2 3
3 7 6 5
3 10 8 9

样例输出 3

impossible

说明

下图对应上述第一个样例的情况:

此处,守卫开始时所在的路口以粗体显示,他的路线由脚印标出。对你来说,一条最优路线如下:你在起始位置(路口 1)等待一分钟,然后前往路口 2、5,最后毫无延迟地到达 6。第二个样例具有相同的博物馆布局,但守卫的起始位置和方向不同。一条可能的最优路线:从 1 前往 2、3、4、5,最后到达 6。

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.