Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
57128 | 朱宸瑜 | 家族 | C++ | 解答错误 | 10 | 1 MS | 1128 KB | 711 | 2022-08-03 19:58:50 |
#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-1; return 0; }