第17届BIT校园编程竞赛 - 现场赛(The 17-th BIT Campus Programming Contest - Onsite Round)

题库链接:Dashboard - The 17-th BIT Campus Programming Contest - Onsite Round - Codeforces

一.小P玩钢4

一.题目展示
 Problem - G - Codeforces

小 P 在合肥玩了一天,晚上回到酒店后决定开一把钢铁雄心4。钢铁雄心4是一款二战模拟器,玩家可以操纵部队进攻敌国。玩了没多久,小 PP 很快便包围了敌军的部队。

具体来说,当前这一片战场可以看成是一块 n×m 的网格,每个格子上有一个数字,第 i行第 j 列的数字为 ,。如果 ,>0,则代表这块格子上有数量为 , 的敌军部队,如果 ,=0,则代表这块格子上是我军部队。在这片战场之外也全是我军部队。

显然,这些敌军部队深陷我军的包围之中,我们需要快速消灭包围圈中的敌人。我们每次可以选择一块与我军部队相邻的有敌军的格子(假设是第 i 行第 j列),然后一共需要消耗 , 加上这个格子四周的敌军部队数量之和个单位的装备消灭掉这个格子上的敌人,随后我军部队进入这个格子,, 变为 00。

由于战场宽度的限制,导致每个格子最多只有一个敌军部队,即 ,∈{0,1}。现在小P 想要知道,最少消耗多少装备能够消灭掉所有敌军部队?

Input
第一行输入两个整数 n,m, (1≤n,m≤1000),表示战场的行数和列数。

接下来 n 行,每行输入 m 个整数,第 i 行第 j 个数为 , (,∈{0,1})。

Output
输出一行,即最少消耗的装备数量。

Examples 例子
Inputcopy    Outputcopy
5 5
0 0 0 0 0
0 0 0 1 0
0 1 1 1 0
0 0 1 0 0
0 0 0 0 0
9
Note 注意
在样例中,我们可以先攻击 a3,3 的部队,需要消耗 1

你可能感兴趣的:(c++)