1 条题解
-
0
C :
#include<stdio.h> const int x0[]={0,0,1,1,1,-1,-1,-1},y0[]={1,-1,-1,0,1,-1,0,1}; int n,m,cnt; char c[110][110]; void dfs(int x,int y) { for(int i=0;i<8;i++) { int x1=x+x0[i],y1=y+y0[i]; if(x1>0&&x1<=n&&y1>=0&&y1<m&&c[x1][y1]=='W') { c[x1][y1]='.'; dfs(x1,y1); } } } int main() { scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%s",c[i]); for(int i=1;i<=n;i++) for(int j=0;j<m;j++) if(c[i][j]=='W') { c[i][j]='.'; dfs(i,j); cnt++; } printf("%d",cnt); return 0; }
C++ :
#include<bits/stdc++.h> using namespace std; int n,m; char a[150][150]; void num(int x,int y){ a[x][y]='.'; if(a[x-1][y]=='W')num(x-1,y); if(a[x-1][y-1]=='W')num(x-1,y-1); if(a[x-1][y+1]=='W')num(x-1,y+1); if(a[x][y-1]=='W')num(x,y-1); if(a[x+1][y-1]=='W')num(x+1,y-1); if(a[x+1][y+1]=='W')num(x+1,y+1); if(a[x+1][y]=='W')num(x+1,y); if(a[x][y+1]=='W')num(x,y+1); } int main(){ cin>>n>>m; int i,j,c=0; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ cin>>a[i][j]; } } for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ if(a[i][j]=='W'){ c++; num(i,j); } } } cout<<c<<endl; return 0; }
- 1
信息
- ID
- 2355
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者