提交时间:2022-08-03 19:57:40

运行 ID: 57125

#include<iostream> using namespace std; char map[300][300]; int n,jiazu=1,kuan; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; void dfs(int x,int y){ map[x][y]=jiazu; for(int i=0;i<4;i++){ int tx=x+dx[i],ty=y+dy[i]; if(map[tx][ty]==0&&tx<n&&ty<kuan&&tx>=0&&ty>=0){ dfs(tx,ty); } } } int main(){ cin>>n; getchar(); for(int i=0;i<n;i++){ int lkuan=0; for(int j=0;;j++){ char c=getchar(); if(c=='\n') break; else{ if(c=='*'||c==' '){ map[i][j]=-1; } lkuan++; } } kuan=max(kuan,lkuan); } for(int i=0;i<n;i++) for(int j=0;j<kuan;j++) if(map[i][j]==0){ dfs(i,j); jiazu++; } cout<<jiazu; return 0; }