[COCI2014-2015#7] POLICE
题目描述
在图书管理员 Jurica 的图书馆里有 $n$ 个书架,每个书架有 $m$ 个位置,从左往右编号为 $1$ 到 $m$,并且每个位置上都可以放一本书。Jurica 是一个好的图书管理员,所以他决定对图书馆进行清点,如果有必要,就把不在自己位置上的书放回原来的位置。具体来说,现在第 $i$ 个书架上的第 $j$ 个位置上面摆着编号为 $a_{i,j}$ 的书(如果 $a_{i,j}=0$ 说明这个位置上面现在没有书),而原来在这个位置上摆着编号为 $b_{i,j}$ 的书(如果 $b_{i,j}=0$ 说明这个位置上面原来没有书)。他以下列操作移动书籍:
- 操作 $1$:如果左边或右边有空位,可以在书架上向左或向右移动图书。
- 操作 $2$:从书架上取下一本书,放在该书架或其他书架的空位上。
细心的 Jurica 如果手中有书,就不能移动书。此外,他**不能同时拿多于一本书**。
自从他不得不把维基百科印刷版的所有书卷从一楼搬到二楼后,Jurica 就一直背痛。因为他的背很疼,所以现在他想把所有的书放好,尽量少搬。请告诉他需要的执行**操作 $2$ 的次数**最少是多少,或者告诉他根本不可能把这些书搬回原来的位置。
输入输出格式
输入格式
输入共 $2n+1$ 行。
第一行输入两个整数 $n,m$,分别表示书架个数和每个书架上的位置个数。
第 $2$ 到 $n+1$ 行,每行输入 $m$ 个整数 $a_{i,j}$,描述现在书架上摆书的情况。
第 $n+2$ 到 $2n+1$ 行,每行输入 $m$ 个整数 $b_{i,j}$,描述原来书架上摆书的情况。
**输入保证原来和现在出现的书籍完全相同。**
输出格式
如果 Jurica 根本不可能把这些书搬回原来的位置,则仅输出一个整数 $-1$。
否则,输出一行一个整数,表示执行**操作 $2$ 的最少次数**。
输入输出样例
输入样例 #1
2 4
1 0 2 0
3 5 4 0
2 1 0 0
3 0 4 5
输出样例 #1
2
输入样例 #2
3 3
1 2 3
4 5 6
7 8 0
4 2 3
6 5 1
0 7 8
输出样例 #2
4
输入样例 #3
2 2
1 2
3 4
2 3
4 1
输出样例 #3
-1
说明
**【样例 1 解释】**
以下是 Jurica 的操作序列:
1. 操作 $1$:把 $1$ 号书籍移动到它右边的位置,也就是它所在书架上的第二个位置。
2. 操作 $2$:把 $2$ 号书籍搬到它所在书架上的第一个位置。
3. 操作 $2$:把 $5$ 号书籍搬到它所在书架上的第二个位置。
可以证明没有更少执行操作 $2$ 的方案。
**【数据范围】**
对于 $50\%$ 的数据,保证每本书在初始和最终状态下都会在同一个书架上。
对于所有数据,$1\leqslant n,m\leqslant 1000$。
**【题目来源】**
本题来源自 **_[COCI 2014-2015](https://hsin.hr/coci/archive/2014_2015/) [CONTEST 7](https://hsin.hr/coci/archive/2014_2015/contest7_tasks.pdf) T6 POLICE_**,按照原题数据配置,满分 $160$ 分。
由 [Eason_AC](https://www.luogu.com.cn/user/112917) 翻译整理提供。