棋盘游戏

提交数: 13, 通过率: 46.15%, 平均分: 55.38

题目描述:

为了增强幼儿园小朋友的数数能力,小虎老师给了一个家庭游戏作业。让小虎那一块空的围棋盘,随机在一些方格中放些棋子(有黑白两种颜色),如果一个方格和它的上、下、左、右四个方格之一有相同颜色的棋子,则认为两个格子是相互连通的。这期间,要求小虎不断统计共有多少个连通块。

如下图是一个 5×9 的一块棋盘,其中 `.` 表示空格,`*` 表示黑棋子,`@`表示白棋子。

则有 4 块连通子块。

.  .  .  .  .  .  .  .  .
.  .  *  *  .  .  @  @  .
.  *  *  @  @  .  @  @  .
.  .  *  @  .  .  *  .  .
.  .  .  .  .  .  .  .  .

哥哥大虎在一边看一边想,如果棋盘是 N×N 的,共放了 M 个棋子,如何使用计算机解决这个问题呢?

输入格式:

第一行两个整数:N,M

接下来有 M 行,每行三个整数:c,x,y。分别表示依次放入棋子的颜色(0 表示白色,1 表示黑色)、要放入格子的横坐标和格子的纵坐标。

输出格式:

M 行。第 i 行一个整数,表示放入第 i 个棋子后,当前有多少个棋子连通块。

样例输入:

样例1
3 5    
1 1 1  
1 1 2  
0 2 2  
1 3 1  
1 2 1
样例2
3 5
1 1 2
1 2 1
1 3 2
1 2 3
1 2 2

样例输出:

样例1
1 
1 
2 
3 
2
样例2
1
2
3
4
1

提示:

对于 30% 数据:1N10

对于 60% 数据:1N100

对于 100% 数据:1N5001MN×N0c11x,yN

时间限制: 1000ms
空间限制: 128MB