全部评论 1

  • 正经

    1周前 来自 浙江

    0
    • #include<bits/stdc++.h>
      using namespace std;
      string mp[1005];
      int n,m;
      bool vis[1005][1005];
      struct Node{
          int x,y;
      };
      int dir[4][2]={0,1,1,0,0,-1,-1,0};
      int main(){
          cin>>n>>m;
          for(int i=1;i<=n;i++){
              cin>>mp[i];
              mp[i]='0'+mp[i]+'0';
          }
          for(int i=0;i<=m+1;i++){
              mp[0]+='0';
              mp[n+1]+='0';
          }
          queue<Node> q;
          q.push({0,0});
          while(!q.empty()){
              Node fr=q.front();
              q.pop();
              for(int i=0;i<4;i++){
                  int tx=fr.x+dir[i][0];
                  int ty=fr.y+dir[i][1];
                  if(tx>=0&&tx<=n+1&&ty>=0&&ty<=m+1&&mp[tx][ty]=='0'&&!vis[tx][ty]){
                      q.push({tx,ty});
                      vis[tx][ty]=true;
                  }
              }
          }
          int cnt=0;
          for(int i=1;i<=n;i++){
              for(int j=1;j<=m;j++){
                  if(mp[i][j]=='0'&&!vis[i][j])cnt++;
              }
          }
          cout<<cnt<<endl;
          return 0;
      }
      

      1周前 来自 浙江

      0
暂无数据

提交答案之后,这里将显示提交结果~

首页