19 条题解

  • 0
    @ 2025-12-29 16:52:17
    #include<bits/stdc++.h>
    using namespace std;
    int fx[5]={0,-1,1,0,0},fy[5]={0,0,0,-1,1},h,w,s,maxs=INT_MIN;
    char a[120][120];
    bool f[120][120];
    void sy(int x,int y)
    {
    	for (int i=1;i<=4;i++)
    		if (x+fx[i]>=1&&y+fy[i]>=1&&x+fx[i]<=w&&y+fy[i]<=h&&a[x+fx[i]][y+fy[i]]=='.'&&f[x+fx[i]][y+fy[i]]==0)
    		{
    			f[x+fx[i]][y+fy[i]]=1;
    			s++;
    			sy(x+fx[i],y+fy[i]);
    	    }
    } 
    int main() 
    {
    	cin>>h>>w;
    	for (int i=1;i<=w;i++)
    		for (int j=1;j<=h;j++) cin>>a[i][j];
    	for (int i=1;i<=w;i++)
    		for (int j=1;j<=h;j++) if (a[i][j]=='@') sy(i,j);
    	cout<<s+1; 
    }
    

    信息

    ID
    103
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    47
    已通过
    15
    上传者