1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; //四个可以走的方向 int fx[5]= {0,1,-1,0,0}; int fy[5]= {0,0,0,1,-1}; int n,m; char a[510][510]; void dfs(int x,int y){ a[x][y] = '*'; int tx,ty; for(int i = 1;i <= 4;i++){ tx = x + fx[i]; ty = y + fy[i]; if(a[tx][ty] == '0'){ dfs(tx,ty); } } } int main() { cin>>n>>m; for(int i = 1;i <= n;i++){ for(int j = 1;j <= m;j++){ cin>>a[i][j]; } } //遍历边界 for(int i = 1;i <= n;i++){ if(i == 1 || i == n){ for(int j = 1;j <= m;j++){ if(a[i][j] == '0'){ dfs(i,j); } } }else{ if(a[i][1] == '0'){ dfs(i,1); } if(a[i][m] == '0'){ dfs(i,m); } } } int c = 0; for(int i = 1;i <= n;i++){ for(int j = 1;j <= m;j++){ if(a[i][j] == '0'){ c++; } } } cout<<c; return 0; }
- 1
信息
- ID
- 831
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者