2 条题解
-
0
#include<bits/stdc++.h> using namespace std; char ch[110][110]; int n,m,v[110][110],num; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; void bfs(int s,int t) { queue<pair<int,int> >que; que.push({s,t}); v[s][t]=1; while(que.size()>0) { int i=que.front().first,j=que.front().second; que.pop(); for(int k=0;k<=3;k++) { int x=i+dx[k],y=j+dy[k]; if(x>=1&&x<=n&&y>=1&&y<=m && v[x][y]==0&&ch[x][y]!='0') { v[x][y]=1; que.push({x,y}); } } } } int main() { cin>>n>>m; for(int i=1;i<=n;i++)cin>>ch[i]+1; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(v[i][j]==0&&ch[i][j]!='0') { ++num; bfs(i,j); } cout<<num; return 0; }
信息
- ID
- 548
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 92
- 已通过
- 57
- 上传者