置换
题号:NC238589
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定长度为n的置换AB,问是否存在一个正整数k,使得

置换可以被理解为一个的双射FF_i表示数字i经过该映射变换后的数字。置换的k次幂被定义为映射的k次复合。

例:是一个长度为5的置换,,即

注:本题并不要求计算出k的值,只是判断k的存在性。

输入描述:

第一行一个数T表示数据组数。
接下来有T组数据,每组数据:
第一行一个正整数数n,接下来一行n个正整数表示A,接下来一行n个正整数表示B
保证给出的都是合法的置换。

输出描述:

对于每组数据,一行输出(大小写敏感)表示是否存在符合条件的k
示例1

输入

复制
2
5
1 3 2 5 4
1 2 3 4 5
4
1 2 3 4
1 2 4 3

输出

复制
Yes
No