Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
54392 | zhangweiran | 农作物 | C++ | 通过 | 0 MS | 272 KB | 721 | 2024-10-27 16:27:13 |
#include<bits/stdc++.h> using namespace std; char f[505][505]; int s[505][505];//0代表未知 1代表农田 -1代表杂草 void dfs(int i,int j){ if(s[i][j]) return ; if(f[i][j]=='X') s[i][j]=-1; else { s[i][j]=1; dfs(i-1,j); dfs(i+1,j); dfs(i,j-1); dfs(i,j+1); } } int main() { int n,m,cnt=0; cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>f[i][j]; } } for(int i=0;i<=n+1;i++){ s[i][0]=s[i][m+1]=-1; } for(int j=0;j<=m+1;j++){ s[0][j]=s[n+1][j]=-1; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(!s[i][j]&&f[i][j]=='R'){//发现未标记的农田 cnt++; dfs(i,j); } } } cout<<cnt<<endl; return 0; }