#sjtu20141C. 矩阵分组

矩阵分组

时间限制: 1.0 秒

空间限制: 256 MB

题目描述

给定一个 N×MN \times M 的矩阵,矩阵中的元素取值为 0,1,10, 1, -1。 规定矩阵中的两个元素 A[i][j]A[i][j]A[r][c]A[r][c] 属于同一个“group”,当且仅当它们满足以下条件:

  1. 它们是相邻的(上下或左右相邻),即 (ir=1 且 j=c)(|i-r|=1 \text{ 且 } j=c)(i=r 且 jc=1)(i=r \text{ 且 } |j-c|=1)
  2. 它们的值相等且不为 0,即 A[i][j]=A[r][c]0A[i][j] = A[r][c] \neq 0

如果是间接相连的(例如 AABB 同组,BBCC 同组),则 A,B,CA, B, C 都属于同一个 group。 请计算矩阵中共有多少个 group。

输入格式

从标准输入读入数据。

第一行包含两个整数 N,MN, M (1N,M10001 \le N, M \le 1000),表示矩阵的行数和列数。 接下来 NN 行,每行包含 MM 个整数,表示矩阵的元素。

输出格式

输出到标准输出。

输出一个整数,表示 group 的数量。

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

样例 1 解释

  • 左边的三个 1 组成一个 group。
  • 右上角的三个 -1 组成另一个 group。
  • 0 不参与分组。

子任务

测试点编号 N,MN, M \le
131 \sim 3 100100
4104 \sim 10 10001000