『湖南省队集训』tower

题目

题目描述

Nick最近在玩一款很好玩的游戏,游戏规则是这样的:

有一个$n\times m$的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们。

攻击方法是:对于每个炮塔,游戏系统已经给出它可以瞄准的方向(上下左右其中一个),Nick需要选择它的攻击位置,每一个炮塔只能够攻击一个位置,炮塔只能够向着它的瞄准方向上的某个位置发动攻击,当然炮塔也可以不进行攻击。炮塔威力强大,它可以且仅可以消灭目标位置上所有的BETA狗。

出于安全考虑,游戏系统已经保证不存在一个炮塔能够瞄准另外一个炮塔,即对于任意一个炮塔,它所有可能的攻击位置上不存在另外一个炮塔。而且,如果把炮塔的起点和终点称为炮弹的运行轨迹,那么系统不允许两条轨迹相交(包括起点和终点)。

现在,选定目标位置以后,每一个炮塔同时开炮,你要告诉Nick,他最多可以干掉多少BETA狗。

输入格式

第一行两个正整数$n,m$,表示地图的规模。

接下来$n$行,每行$m$个整数,$0$表示空地,$-1$,$-2$,$-3$,$-4$分别表示瞄准上下左右的炮塔,若为正整数$p$,则表示该位置有$p$个BETA狗。

输出格式

一行一个正整数,表示Nick最多可以干掉几个BETA狗。

样例输入 1

3 2
0 9
-4 3
0 -1

样例输出 1

9

样例输入 2

4 5
0 0 -2 0 0
-4 0 5 4 0
0 -4 3 0 6
9 0 0 -1 0

样例输出 2

12

样例解释

对于样例$1$,由于轨迹不能相交,那么只能由最下面的炮塔攻击位置$(1,2)$。

对于样例$2$,可以由$(2,1),(3,2),(4,4)$三个炮塔解决$5+3+4=12$个BETA狗。

数据范围

对于$20\%$的数据,$n, m\le 5$。

对于另外$20\%$的数据,最多有$2$个朝向上下的炮塔。

对于另外$20\%$的数据,最多有$6$个炮塔。

对于$100\%$的数据,$n, m\le 50$,每个位置的BETA狗数量不超过$999$个,保证不存在任意一个炮塔能够瞄准另外一个炮塔。

文章目录
  1. 1. 题目
    1. 1.1. 题目描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 样例输入 1
    5. 1.5. 样例输出 1
    6. 1.6. 样例输入 2
    7. 1.7. 样例输出 2
    8. 1.8. 样例解释
    9. 1.9. 数据范围
,