样例过了,RE!流汗
查看原帖
样例过了,RE!流汗
530560
lele6688楼主2021/9/14 20:22
#include<iostream>
#include<cstdio>
using namespace std;
int s[10000][10000],t[1000][1000];
int ds[5]={0,1,-1,0,0},shu=0;
int df[5]={0,0,0,1,-1};
int a,b;
char k;
void dfs(int x,int y)
{
	if(x<0||y<0||x>a+1||y>b+1) return ;
	t[x][y]=2;
	for(int i=1;i<=4;i++)
	{
	int n1=x+ds[i];
	int n2=y+df[i];
	if(t[n1][n2]!=2&&s[n1][n2]!=1)
	{
	dfs(n1,n2);	
	}
	}
}
int main()
{

	cin>>a>>b;

	for(int i=1;i<=a;i++)
	{
	for(int j=1;j<=b;j++)
	{
	cin>>k;
	if(k=='*') s[i][j]=1;
	}
	}
    dfs(0,0);
    for(int i=1;i<=a;i++)
    {
    for(int j=1;j<=b;j++)
    {
    if(t[i][j]==0&&s[i][j]!=1)
    {
    shu++;
    }
    }
    }
    cout<<shu;
    return 0;
}
2021/9/14 20:22
加载中...