logo AlgoBeat OnlineJudge
登录 注册

#104323. [BZOJ 4323] Coci2015 Police

内存限制:128 MiB 时间限制:10000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

个书架,每个书架可以容纳 本书。给出了若干本书,每本书有一个正整数的唯一编号,且编号不超过

给出了初始时各个书架里面的书的编号,即给出二维数组 的意义是第 个书架的第 个格子放的那本书的编号是 。如果 等于 则说明该格子没有书,是空的。

一个格子最多只能放一本书。再给出二维数组 ,表示最终你需要把这些书经过移动之后达到的目的。你移动书的过程需要满足如下两个条件:

  • 你可以把某一个书架的书向左或者向右推动一格。这就是横向的“推”动作,你可以“推”任意多次。

  • 你可以拿起某一个书架的一本书,然后把这本书放到任意书架的空格子里。这就是“拿”动作。你可以“拿”任意多次。注意:当你“拿”起一本书时,你是不能做“推”的动作。则“拿”起一本书,接下来的那个动作必须是把这本书放到一个空格子里。每次只能“拿”起一本书。

现在你的任务是:用最少次数的“拿”动作,去完成目标,如果无法完成目标,输出 -1

输入格式

第一行两个整数

接下来 行,每行 个数,表示数组

接下来 行,每行 个数,表示数组

输出格式

输出一行一个整数,表示最少需要“拿”的次数。

样例

样例输入 #1

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

样例输出 #1

2

数据范围与提示

对于 的数据,