【蓝桥杯-dfs】油田问题

xiaoxiao2021-02-28  58

#include<iostream> #include<bits/stdc++.h> using namespace std; int xx[4]={1,-1,0,0}; int yy[4]={0,0,1,-1}; void dfs(int x,int y,int n,int m,char a[1000][150]) { if(a[x][y]=='#') a[x][y]='.'; else if(a[x][y]=='.') return; for(int i=0;i<=3;i++) { int x1=x+xx[i]; int y1=y+yy[i]; if(x1<0||y1<0||x1>=n||y1>=m) continue; else dfs(x1,y1,n,m,a); } } int main() { char a[1000][150]; int n,m; cin>>n>>m; int ans=0; 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]=='#') { ans++; dfs(i,j,n,m,a); } } cout<<ans; return 0; }
转载请注明原文地址: https://www.6miu.com/read-2632775.html

最新回复(0)