#P8124. [BalticOI 2021 Day1] From Hacks to Snitches

[BalticOI 2021 Day1] From Hacks to Snitches

题目背景

此题数据经删减,若想测试完整数据请到 loj 处提交。

本题数据暂有问题,上传不了

如需提交请先到 loj 处提交

题目描述

给定一个 NN 个点 MM 条边的无向图,有 KK 个守卫第 ii 个守卫会经过 iℓ_i 个节点,这 iℓ_i 个节点分别为 v1,v2,,viv_1,v_2,\cdots,v_{ℓ_i},运行机制为守卫刚开始位于第 v1v_1 个节点,设其为第 00 分钟,11 分钟时从第 v1v_1 个节点走到第 v2v_2 个节点,22 分钟时从第 v2v_2 个节点走到第 v3v_3 个节点,……,i1ℓ_i-1 分钟时从第 vi1v_{ℓ_i-1} 个节点走到第 viv_{ℓ_i} 个节点,iℓ_i 分钟时从第 viv_{ℓ_i} 个节点走到第 v1v_1 个节点,以此类推,无限循环。

您是一个小偷,您要从第 11 个节点到达第 NN 个节点,即 00 分钟时您位于 11 号节点,您可以一个节点直接到另一个节点,但是要经过这两个节点之间的路径,您要保证这条路径上没有一个节点上有守卫,且守卫也不经过这些组成路径的边。您经过每一条边的时间都是一分钟。保证任意两个守卫的路径不相交,并且起点和终点均不在任意守卫的路径上。

您想知道不被守卫发现的情况下需要最短多少分钟或者提出无解。

输入格式

第一行两个整数 N,MN,M 代表点数和边数。

接下来 MM 行每行两个整数 u,vu,v 代表一条边。

M+2M+2 行一个整数 KK 代表守卫个数。

接下来 KK 行首先一个整数 iℓ_i 代表守卫的路径长度,接下来 iℓ_i 个整数 v1,v2,,viv_1,v_2,\cdots,v_{ℓ_i} 描述路径。

输出格式

一行一个整数代表最少需要多少分钟或者无解时输出 impossible

6 6
1 2
2 3
3 4
4 5
5 2
5 6
1
4 3 2 5 4
4
6 6
1 2
2 3
3 4
4 5
5 2
5 6
1
4 4 5 2 3
5
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
impossible

提示

样例 1 解释

11 个守卫的路径如下:

一种可行方式是:

  • 00 分钟时,开始在节点 11
  • 11 分钟时,在节点 11 等待;
  • 22 分钟时,移动到节点 22
  • 33 分钟时,移动到节点 55
  • 44 分钟时,移动到节点 66

样例 2 解释

图和路径与样例 1 一样,只是起点和终点不同。

一种可行方式是,没有等待,直接按照 1234561 \to 2 \to 3 \to 4 \to 5 \to 6 走。

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(5 pts):N,M105N,M \le 10^5K=1K=11125 ℓ_1 \le 125
  • Subtask 2(10 pts):N,M105N,M \le 10^5i125\sum ℓ_i \le 125,满足性质 A。
  • Subtask 3(10 pts):i200 ℓ_i \le 200i350\sum ℓ_i \le 350,满足性质 A。
  • Subtask 4(10 pts):满足性质 A。
  • Subtask 5(25 pts):i125\sum ℓ_i \le 125
  • Subtask 6(20 pts):i200 ℓ_i \le 200i350\sum ℓ_i \le 350
  • Subtask 7(20 pts):无特殊限制。
  • Subtask Ex(0 pts):Extra Subtask。

对于 100%100\% 的数据,1N2.5×1051 \le N \le 2.5 \times 10^51M3×1061 \le M \le 3 \times 10^63i15003 \le ℓ_i \le 1500i2750\sum ℓ_i \le 2750

性质 A 为没有一条边连接任意两个守卫的路径。

说明

翻译自 BalticOI 2021 Day1 C From Hacks to Snitches