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
 - 标签
 - 递交数
 - 179
 - 已通过
 - 85
 - 上传者