RE求助
查看原帖
RE求助
672645
zhouduanxing楼主2024/11/30 14:16
#include <bits/stdc++.h>
using namespace std;
long long x,y,c=0;
long long dx[]={-1,1,0,0},dy[]={0,0,-1,1};
string a[1000];
void dfs(int d,int b)
{
    //cout<<d<<","<<b<<"=1"<<endl;
    a[d][b]='1';
    for(int i=0;i<4;i++)
    {
        int nx=d+dx[i];
        int ny=b+dy[i];
        //cout<<"nx="<<nx<<",ny="<<ny<<endl;
        if(a[nx][ny]=='0'&&nx>0&&ny>0&&nx<x&&ny<y)
        {
            //cout<<"111nx="<<nx<<",ny="<<ny<<endl;
            dfs(nx,ny);
        }
    }
}
int main()
{
    cin>>x>>y;
    for(int i=0;i<=x+1;i++)a[0][i]='1';
    for(int i=0;i<=y+1;i++)a[i][0]='1';
    for(int i=0;i<=x+1;i++)a[x][i]='1';
    for(int i=0;i<=y+1;i++)a[i][y]='1';

    for(int i=1;i<=x;i++)
    {
        cin>>a[i];
    }
   dfs(0,0);
    for(int i=0;i<=x+1;i++)
    {
        for(int j=0;j<=y+1;j++)
        {
            //cout<<a[i][j];
            if(a[i][j]=='0')c++;
        }
        cout<<endl;
    }
    cout<<c<<endl;
    return 0;
}
2024/11/30 14:16
加载中...