下面是代码:
import java.util.Scanner;
public class tets4 {
static char [][]mat=new char[1010][1010];//地图
static int n;
static int m;//n行m列
static boolean []row=new boolean[1010];//标记每行
static boolean[] col=new boolean[1010];//标记每列
public static void boom(int x,int y){
mat[x][y]=0;//访问过的意思
if(!row[x]){
row[x]=true;//x这一行没有爆炸
for(int i=0;i<m;i++){
if(mat[x][i]=='1'){
boom(x,i);
}
}
}
if(!col[y]){
col[y]=true;//y这一列没有爆炸
for(int i=0;i<n;i++){
if(mat[i][y]=='1'){
boom(i,y);
}
}
}
}
public static void main(String []args){
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
mat[i][j]=sc.next().charAt(0);
}
}
int cnt=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(mat[i][j]=='1'){
++cnt;
boom(i,j);
}
}
}
System.out.println(cnt);
}
}