Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
56982 | 杨中琦 | 家族 | C++ | 通过 | 100 | 1 MS | 484 KB | 1087 | 2022-08-03 17:22:33 |
#include<bits/stdc++.h> using namespace std; const int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1}; string s; int n,cnt,l[510],a[550][550]; void bfs(int x,int y) { queue< pair<int,int> >q; q.push(make_pair(x,y)); a[x][y]=0; while(!q.empty()) { int cx=q.front().first; int cy=q.front().second; q.pop(); for(int i=0;i<4;i++) { int nx=cx+dx[i]; int ny=cy+dy[i]; if(nx>=1 && nx<=n && ny>=1 && ny<=l[nx] && a[nx][ny]==1) { a[nx][ny]=0; q.push(make_pair(nx,ny)); } } } } int main() { scanf("%d",&n); getline(cin,s); for(int i=1;i<=n;i++) { getline(cin,s); l[i]=s.length(); for(int j=1;j<=l[i];j++)if(s[j-1]>='a'&&s[j-1]<='z')a[i][j]=1; } for(int i=1;i<=n;i++) for(int j=1;j<=l[i];j++) { if(a[i][j]==1) { bfs(i,j); cnt++; } } printf("%d",cnt); }