AcWing 1113. 红与黑
原题链接
简单
作者:
吃手手丶
,
2021-01-12 10:13:22
,
所有人可见
,
阅读 230
Java 代码
import java.util.Scanner;
public class Main{
static int res=0;
static int w,h;
static char[][] a=new char[20][20];
static int[] d1={0,0,1,-1};
static int[] d2={1,-1,0,0};
static Scanner sc=new Scanner(System.in);
static void dfs(int x,int y){
a[x][y]='@';
res++;
for(int i=0;i<4;i++){
if(x+d1[i]>=0&&x+d1[i]<h&&y+d2[i]>=0&&y+d2[i]<w&&String.valueOf(a[x+d1[i]][y+d2[i]]).equals(".")){
dfs(x+d1[i],y+d2[i]);
}
}
}
public static void main(String[] args){
while(true){
//Scanner sc=new Scanner(System.in);
w=sc.nextInt();
h=sc.nextInt();
if(w==0&&h==0) break;
res=0;
int startx=0,starty=0;
for(int i=0;i<h;i++){
String s1=sc.next();
for(int j=0;j<w;j++){
a[i][j]=s1.charAt(j);
if(String.valueOf(a[i][j]).equals("@")){
startx=i;
starty=j;
}
}
}
dfs(startx,starty);
System.out.println(res);
}
}
}