2003_金币阵列

2022-5-16 18:18| 发布者: Hocassian| 查看: 42| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-3-89504232253800-Problem List-采集的数据-后羿采集器.html

Pro.ID

2003

Title

金币阵列

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=2003

AC

14

Submit

53

Ratio

26.42%

时间&空间限制

  • Time Limit: 600/300 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others)
  • 描述

    有 m × n  (m ≤ 100 , n ≤ 100) 个金币在桌面上排成一个m行n列的金币阵列。每一枚金币或正面朝上或背面朝上。用数字表示金币状态,0表示金币正面朝上,1表示背面朝上。

    金币阵列游戏的规则是:

    1. 每次可将任一行金币翻过来放在原来的位置上;

    2. 每次可任选2列,交换这2列金币的位置。

    给定金币阵列的初始状态和目标状态,计算按金币游戏规则,将金币阵列从初始状态变换到目标状态所需的最少变换次数。

    输入

    输入数据的第一行有一个正整数k,表示有k组数据。

    每组数据的第一行有2个正整数m和n。以下的m行是金币阵列的初始状态,每行有n个数字表示该行金币的状态,0表示金币正面朝上,1表示背面朝上。接着的m行是金币阵列的目标状态。

    输出

    Description

    有 m × n  (m ≤ 100 , n ≤ 100) 个金币在桌面上排成一个m行n列的金币阵列。每一枚金币或正面朝上或背面朝上。用数字表示金币状态,0表示金币正面朝上,1表示背面朝上。

    金币阵列游戏的规则是:

    1. 每次可将任一行金币翻过来放在原来的位置上;

    2. 每次可任选2列,交换这2列金币的位置。

    给定金币阵列的初始状态和目标状态,计算按金币游戏规则,将金币阵列从初始状态变换到目标状态所需的最少变换次数。

    Input

    输入数据的第一行有一个正整数k,表示有k组数据。

    每组数据的第一行有2个正整数m和n。以下的m行是金币阵列的初始状态,每行有n个数字表示该行金币的状态,0表示金币正面朝上,1表示背面朝上。接着的m行是金币阵列的目标状态。

    Output

    按照输入数据的次序,输出最少变换次数。相应数据无解时输出-1。

    Sample Input

    2
    4 3
    1 0 1
    0 0 0
    1 1 0
    1 0 1
    1 0 1
    1 1 1
    0 1 1
    1 0 1
    4 3
    1 0 1
    0 0 0
    1 0 0
    1 1 1
    1 1 0
    1 1 1
    0 1 1
    1 0 1

    Sample Output

    2
    -1

    Author

    样例输入

    2
    4 3
    1 0 1
    0 0 0
    1 1 0
    1 0 1
    1 0 1
    1 1 1
    0 1 1
    1 0 1
    4 3
    1 0 1
    0 0 0
    1 0 0
    1 1 1
    1 1 0
    1 1 1
    0 1 1
    1 0 1

    样例输出

    2
    -1

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部