7 条题解
-
1
/********************************* 备注: *********************************/ #include <iostream> #include <stdio.h> #include <string.h> #include <queue> #include <math.h> #include <vector> #include <algorithm> #include <iomanip> #include <stack> using namespace std; #define LL long long const int N =1e5+10; const int INF =0x3f3f3f3f; int mp[100][100],a[100][100],n,m; int dx[]{0,-1,0,1}; int dy[]{-1,0,1,0}; struct node{ int x,y; }; int bfs(int x,int y){ queue<node> p; p.push((node){x,y}); a[x][y]=1; int sum=1; while(!p.empty()){ node t=p.front(); p.pop(); for(int i=0;i<4;i++){ x=t.x+dx[i]; y=t.y+dy[i]; int s=mp[t.x][t.y]&(1<<i); if(s==0&&!a[x][y]){ a[x][y]=++sum; p.push((node){x,y}); } } } return sum; } int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>mp[i][j]; } } int num=0,maxx=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i][j]==0){ num++; maxx=max(maxx,bfs(i,j)); } } } cout<<num<<endl; cout<<maxx<<endl; return 0; }
信息
- ID
- 1344
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 127
- 已通过
- 56
- 上传者