提交时间:2024-05-03 10:58:06

运行 ID: 46356

#include<bits/stdc++.h> using namespace std; int n,m; char a[120][120]; int d[4][2]={{-1,0},{1,0},{0,-1},{0,1}}; struct node{ int x; int y; }q[10000000]; void bfs(int xx,int yy){ int head=1,tail=1; a[xx][yy]='X'; q[tail].x=xx; q[tail].y=yy; tail++; while(head<tail){ int xxx=q[head].x; int yyy=q[head].y; for(int i=0;i<4;i++){ int nx=xxx+d[i][0]; int ny=yyy+d[i][1]; if(nx>=0&&nx<n&&ny>=0&&ny<m&&a[nx][ny]=='R'){ a[nx][ny]='X'; q[tail].x=nx; q[tail].y=ny; tail++; } } head++; } } int main(){ int sum=0; cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i][j]=='R'){ sum++; bfs(i,j); } } } cout<<sum; return 0; }