题目
递交
根据比赛规则,你现在不能查看你的评测记录详情。
问答
-
主题: 一般问题 | Jury @ 2025-4-1 19:01:19
#include<bits/stdc++.h> using namespace std; char a[505][505]; int vis[505][505]; int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int n,m; void dfs(int x,int y){ vis[x][y] = 1; for(int i=0;i<4;i++){ int tx = x + dx[i]; int ty = y + dy[i]; if(tx < 0 || tx >= n || ty < 0 || ty >= m) continue; if(vis[tx][ty] == 1) continue; if(a[tx][ty] == 'X') continue; dfs(tx,ty); } } int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } int cnt=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(vis[i][j] == 0 && a[i][j] == 'R'){ dfs(i,j); cnt++; } } } cout<<cnt; return 0; }