时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
Bob 经常喜欢出题考验 Alice:
Alice 有一个长度为

的排列

,Bob 同样也有一个长度为

的排列

,Bob 问 Alice 你能通过变换序列使得
你的排列

变成我的排列

吗?Bob 不希望 Alice 太轻易的达成目标,所以他给出了

个能变换的一些位置信息,每个信息由一个二元组
)
描述,表示其可以交换

两个位置的元素。
Alice 可以使用下面技能任意次:
-
她可以自己添加任意一个变换的信息,同时她为了不让 Bob 发现,其必须先删掉一个已经存在的变换信息。
请问 Alice 可以通过使用技能(也可以不用)调整这

组信息,然后可以根据这些信息,对排列

做出任意次变换(也可以不变换)使其变成排列

吗?
注意 Alice 必须先确定自己调整完了这

组信息,才会开始变换。(即不能在开始变换后又再次调整信息)
输入描述:
本题有多组测试数据。
先输入
,表示数据组数。
对于每组数据:
第
行输入
,表示排列长度。
第
行输入
个整数
,表示 Alice 的排列。
第
行输入
个整数
,表示 Bob 的排列。
第
行输入
,表示给出的变换信息个数。
接下来

行,每行两个整数
)
,表示其可以交换

两个位置的元素,保证所有信息不重复。
输出描述:
对于每组数据,如果无论如何都无法使得排列
变成排列
,请你输出 No,否则输出 Yes。