CF1980E.Permutation of Rows and Columns
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个 n×m 的矩阵 a,其中包含了从 1 到 n⋅m 的一个排列。
n 个整数的排列是一个包含从 1 到 n 的所有数字且每个数字恰好出现一次的数组。例如,数组 [1]、[2,1,3]、[5,4,3,2,1] 是排列,而 [1,1]、[100]、[1,2,4,5] 不是排列。
如果把矩阵的所有元素按顺序写成一个数组,这个数组是一个排列,则称该矩阵包含一个排列。矩阵 [[1,2],[3,4]]、[[1]]、[[1,5,3],[2,6,4]] 包含排列,而 [[2]]、[[1,1],[2,2]]、[[1,2],[100,200]] 不包含排列。
你可以在一次操作中执行以下两种操作之一:
- 选择第 c 列和第 d 列(1≤c,d≤m,c=d),交换这两列;
- 选择第 c 行和第 d 行(1≤c,d≤n,c=d),交换这两行。
你可以进行任意次数的操作。
给定原始矩阵 a 和目标矩阵 b,请判断是否可以通过上述操作将矩阵 a 变换为矩阵 b。
输入格式
第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 m(1≤n,m≤n⋅m≤2×105),表示矩阵的大小。
接下来的 n 行,每行包含 m 个整数 aij(1≤aij≤n⋅m)。保证矩阵 a 是一个排列。
再接下来的 n 行,每行包含 m 个整数 bij(1≤bij≤n⋅m)。保证矩阵 b 是一个排列。
保证所有测试用例中 n⋅m 的总和不超过 2×105。
输出格式
对于每个测试用例,如果可以通过操作将第一个矩阵变换为第二个矩阵,输出 "YES";否则输出 "NO"。
你可以用任意大小写输出每个字母。例如,"yEs"、"yes"、"Yes"、"YES" 都会被判为正确答案。
输入输出样例
输入#1
7 1 1 1 1 2 2 1 2 3 4 4 3 2 1 2 2 1 2 3 4 4 3 1 2 3 4 1 5 9 6 12 10 4 8 7 11 3 2 1 5 9 6 12 10 4 8 7 11 3 2 3 3 1 5 9 6 4 2 3 8 7 9 5 1 2 4 6 7 8 3 2 3 1 2 6 5 4 3 6 1 2 3 4 5 1 5 5 1 2 3 4 4 2 5 1 3
输出#1
YES YES NO YES YES NO YES
说明/提示
在第二个样例中,原始矩阵如下:
(1324)
交换第 1 行和第 2 行后,变为:
(3142)
再交换第 1 列和第 2 列后,变为矩阵 b:
(4231)
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?