QOJ.ac

QOJ

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

#13094. 星球大战

Statistics

在未来,人类已经殖民了宇宙,并正与外星种族交战。太空中存在许多太阳系,我们可以将这些太阳系分为两类:1) 人类控制的太阳系,以及 2) 非人类控制的太阳系。人类还在多个太阳系中建立了军事基地,其中一些太阳系是人类控制的,另一些则不是。太阳系之间距离非常遥远,因此在两个系统之间旅行的唯一方式是通过虫洞。然而,并非所有太阳系对之间都有虫洞相连,且虫洞是单向的。当一艘人类飞船从一个人类控制的太阳系出发,想要前往某个太阳系的军事基地时,它必须获得一系列证书,以证明它是人类飞船而非外星间谍船。飞船通过虫洞在两个太阳系之间旅行,并从虫洞获得相应的证书。两个太阳系之间可能存在许多不同的虫洞,每个虫洞对应不同的证书。从一个太阳系出发,也可能存在许多通往不同太阳系但证书相同的虫洞。太阳系甚至可以拥有通往自身的虫洞,从而实现时间旅行。当飞船到达军事基地时,其收集的证书会按收集顺序进行检查,以确认该飞船是否确实源自人类控制的太阳系。然而,人类很懒,他们只会检查证书序列是否与从任意人类控制系统到任意军事基地的某条路线相匹配。

外星人很快意识到,由于人类的懒惰,他们并不会检查是否存在一条从非人类控制的太阳系出发,且具有相同证书序列并通往军事基地的路线。外星间谍想要潜入人类的军事基地。因此,他们试图找到一条通往军事基地的路线,该路线产生的证书序列与人类飞船从人类控制系统前往军事基地时所产生的证书序列相同。然而,外星人不能从人类控制的太阳系出发,但他们在初始出发后可以访问人类控制的太阳系。

作为一名外星间谍,你的任务是确定是否存在一条从非人类控制的系统出发,通往军事基地 $B_i$ 的路线,使得该路线产生的证书序列能够让你伪装成人类;换句话说,该证书序列与人类从人类控制系统前往军事基地 $B_j$ 时所能收集到的证书序列相同。注意,$B_i$ 和 $B_j$ 可以不同。

宇宙由 $N$ 个太阳系组成。其中一些被特别标记为人类控制,另一些被特别标记为拥有军事基地(太阳系可以既是人类控制的又有军事基地,也可以只占其一,或者两者皆无)。一些太阳系通过单向虫洞相连。当飞船穿过虫洞时,它会收到一个特殊的证书(证书有许多不同的类型)。

输入格式

程序从标准输入读取数据。输入的第一行包含五个整数 $N, W, C, H, M$,以空格分隔。$N$ ($1 \le N \le 1,000$) 是太阳系的数量。太阳系用 $0$ 到 $N-1$ 的不同整数标记。$W$ ($1 \le W \le 8000$) 是虫洞的数量。$C$ ($1 \le C \le 20$) 是不同证书的数量。下一行包含 $H$ ($1 \le H \le N$) 个整数,以空格分隔,对应人类控制的太阳系。下一行包含 $M$ ($1 \le M \le N$) 个整数,以空格分隔,标记拥有军事基地的太阳系。剩余的 $W$ 行,每行包含三个整数 $s, c, t$,以空格分隔,对应一个虫洞。对于每个虫洞,$s$ 是虫洞的源太阳系,$c$ 是虫洞颁发的证书,$t$ 是虫洞的目标太阳系,其中 $0 \le s, t \le N-1$ 且 $1 \le c \le C$。注意虫洞可以满足 $s = t$。

输出格式

程序写入标准输出。如果外星人有办法潜入军事基地,则打印 YES,否则打印 NO

样例

样例输入 1

4 6 2 1 2
0
1 3
0 1 0
0 2 1
0 1 2
1 2 0
2 2 1
2 1 3

样例输出 1

YES

样例输入 2

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

样例输出 2

NO

样例输入 3

5 4 2 2 2
1 3
2 4
0 2 1
1 1 2
3 2 3
3 1 4

样例输出 3

YES

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.