#4065. [Cerc2012] Graphic Madness

[Cerc2012] Graphic Madness

题目描述

在 Byteland 有两家领导显卡行业的制作商: Bitotronics 和 3D-Bytes。

他们顶级的显卡十分相像。每一个都包含一些电线连接节点,用来维护电信号传播。产品包括两种节点:插座和处理器。

这种有线网络满足以下条件:

  • 每个插座都恰好和一个处理器相连,不和任何其他插座相连。

  • 每个处理器都和至少两个其他的节点相连。

  • 任意两个在网络中的节点,都只存在唯一的电线路径链接他们。

换句话说,这些节点之间的连通图可以被看成是一棵树。

Bitthew 喜欢焊接计算机的硬件设备。他拿出了来自两个不同厂家的显卡,两个显卡拥有相同数量的插座,他决定将每个 Bitotronics 卡上的插座与 3D-Bytes 卡上的插座用电缆一一相连。

他得到的装置如图:  

Bitthew 想要从装置中获得出最大的性能。

为了实现这个目标,他想要找到一条由电线和电缆组成的路径来维护电信号。

这条路径应该访问每个节点恰好一次,且这条路径的起始节点和终止节点应该在同一个节点。

请你帮助 Bitthew 检查一下现在的装置是否能找到这样的路径。

输入格式

第一行一个正整数 TT,表示有 TT 组数据。

每组数据第一行三个整数 k,n,mk, n, m,表示每个卡有 kk 个插座,Bitotronics 卡有 nn 个处理器,3D-Bytes 卡有 mm 个处理器。

卡上的节点按照以下形式命名:

  • Bitotronics 卡的插座:AS1,AS2,,ASkAS_1, AS_2, \dots, AS_k

  • Bitotronics 卡的处理器:AP1,AP2,APnAP_1, AP_2, \dots AP_n

  • 3D-Bytes 卡的插座:BS1,BS2,,BSkBS_1, BS_2, \dots, BS_k

  • 3D-Bytes 卡的处理器:BP1,BP2,,BPmBP_1, BP_2, \dots, BP_m

接下来 n+k1n+k-1 行描述 Bitotronics 卡的情况,每行两个节点的名字,表示这两个节点之间有电线相连。

接下来一行为空行。

接下来 m+k1m+k-1 行描述 3D-Bytes 卡的情况,每行两个节点的名字,表示这两个节点之间有电线相连。

接下来一行为空行。

接下来 kk 行描述两卡之间的情况,每行两个节点的名字,表示这两个节点之间有电缆相连,保证每个插座在这 kk 行里均只出现一次。

每组数据之间会有一个空行。

输出格式

对于每组数据,如果不存在这样的路径,输出一行 NO,否则先输出一行 YES,再在其后按照路径上的顺序输出 n+m+2kn+m+2k 个节点,相邻的节点必须通过电线或电缆直接相连,而且第一个点必须和最后一个点也直接相连,按照任意顺序输出,节点名称和 YES 之间空格隔开。

1
2 1 11
AS1 AP1
AS2 AP1
BS1 BP1
BS2 BP11
BP1 BP2
BP2 BP3
BP3 BP4
BP4 BP5
BP5 BP6
BP6 BP7
BP7 BP8
BP8 BP9
BP9 BP10
BP10 BP11
AS1 BS2
BS1 AS2

YES BP11 BP10 BP9 BP8 BP7 BP6 BP5 BP4 BP3 BP2 BP1 BS1 AS2 AP1 AS1 BS2

数据规模与约定

对于 100%100\% 的数据满足,2k10002 \le k \le 10001n,m10001 \le n, m \le 1000