#4403. 交换拼图(Swapping Puzzle)
交换拼图(Swapping Puzzle)
题目描述
你有两个网格和,每个网格有行和列。
对于每对整数满足和,让表示第行第列的单元格。在网格中,单元格包含整数。在网格中,单元格包含整数。
你可以重复以下操作任意次数,可能为零次。在每次操作中,你执行以下操作之一:
- 选择一个满足的整数,并交换网格中第行和第行。
- 选择一个满足的整数,并交换网格中第列和第列。
确定是否可能通过重复上述操作使网格与网格相同。如果可能,请输出使网格与网格相同所需的最小操作次数。
这里,当且仅当对于所有满足和的整数对,网格中单元格中写的整数等于网格中单元格中写的整数时,网格与网格相同。
输入格式
输入按以下格式从标准输入给出:
输出格式
如果无法使网格与网格相同,输出-1
。否则,输出使网格与网格相同所需的最小操作次数。
样例
4 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
1 3 2 5 4
11 13 12 15 14
6 8 7 10 9
16 18 17 20 19
3
2 2
1 1
1 1
1 1
1 1000000000
-1
3 3
8 1 6
3 5 7
4 9 2
8 1 6
3 5 7
4 9 2
0
5 5
710511029 136397527 763027379 644706927 447672230
979861204 57882493 442931589 951053644 152300688
43971370 126515475 962139996 541282303 834022578
312523039 506696497 664922712 414720753 304621362
325269832 191410838 286751784 732741849 806602693
806602693 732741849 286751784 191410838 325269832
304621362 414720753 664922712 506696497 312523039
834022578 541282303 962139996 126515475 43971370
152300688 951053644 442931589 57882493 979861204
447672230 644706927 763027379 136397527 710511029
1
20
样例解释
【样例1说明】
交换初始网格的第四列和第五列得到以下网格:
1 2 3 5 4
6 7 8 10 9
11 12 13 15 14
16 17 18 20 19
然后,交换第二行和第三行得到以下网格:
1 2 3 5 4
11 12 13 15 14
6 7 8 10 9
16 17 18 20 19
最后,交换第二列和第三列得到以下网格,该网格与网格相同:
1 3 2 5 4
11 13 12 15 14
6 8 7 10 9
16 18 17 20 19
你可以通过上述三次操作使网格与网格相同,并且无法用更少的操作次数完成,所以输出3。
【样例2说明】
无法通过操作使网格与网格匹配,所以输出-1。
【样例3说明】
网格在一开始就已经与网格相同。
数据范围
- 所有输入值都是整数。
- 。
来源
- AtCoder ABC332D