求助一道站外题2
  • 板块灌水区
  • 楼主Nostopathy
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/4/13 20:50
  • 上次更新2024/4/13 22:05:59
查看原帖
求助一道站外题2
1286053
Nostopathy楼主2024/4/13 20:50
问题描述
给定两个 
�
×
�
H×W 的矩阵 
�
A 和 
�
B。

你每次可以交换矩阵 
�
A 的相邻两行中的所有元素或是交换两列中的所有元素。

请问要使 
�
A 变换至 
�
B 至少需要几步操作?

如果无法变换至 
�
B,则输出 -1。

约束条件
所有输入值均为整数。
2
≤
�
,
�
≤
5
2≤H,W≤5
1
≤
�
�
,
�
,
�
�
,
�
≤
1
0
9
1≤A 
i,j
​
 ,B 
i,j
​
 ≤10 
9
 
输入
输入以以下格式从标准输入给出:

�
H 
�
W
�
1
,
1
A 
1,1
​
  
�
1
,
2
A 
1,2
​
  
⋯
⋯ 
�
1
,
�
A 
1,W
​
 
�
2
,
1
A 
2,1
​
  
�
2
,
2
A 
2,2
​
  
⋯
⋯ 
�
2
,
�
A 
2,W
​
 
⋮
⋮
�
�
,
1
A 
H,1
​
  
�
�
,
2
A 
H,2
​
  
⋯
⋯ 
�
�
,
�
A 
H,W
​
 
�
1
,
1
B 
1,1
​
  
�
1
,
2
B 
1,2
​
  
⋯
⋯ 
�
1
,
�
B 
1,W
​
 
�
2
,
1
B 
2,1
​
  
�
2
,
2
B 
2,2
​
  
⋯
⋯ 
�
2
,
�
B 
2,W
​
 
⋮
⋮
�
�
,
1
B 
H,1
​
  
�
�
,
2
B 
H,2
​
  
⋯
⋯ 
�
�
,
�
B 
H,W
​
 
输出
如果无法使网格 A 变为与网格 B 相同,则输出 -1。否则,输出使网格 A 变为与网格 B 相同所需的最小操作次数。

示例 1
Inputcopy	Outputcopy
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
交换初始网格 A 的第四和第五列得到以下网格:

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
最后,交换第二和第三列得到以下网格,与网格 B 相同:

1 3 2 5 4
11 13 12 15 14
6 8 7 10 9
16 18 17 20 19
通过上述三次操作,你可以使网格 A 与网格 B 相同,且不能用更少的操作次数,因此输出 
3
3。

示例 2
Inputcopy	Outputcopy
2 2
1 1
1 1
1 1
1 1000000000
-1
无法通过操作使网格 A 与网格 B 相同,因此输出 -1。

示例 3
Inputcopy	Outputcopy
3 3
8 1 6
3 5 7
4 9 2
8 1 6
3 5 7
4 9 2
0
初始时,网格 A 已经与网格 B 相同。

示例 4
Inputcopy	Outputcopy
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
20
Sponsor

谢谢,QaQ

2024/4/13 20:50
加载中...