poj 2386

poj 2386

DFS题目啊。看通过率就知道非常简单的。一下付代码,大家自己看下。
#include<iostream>
using namespace std;
char array[100][100];
int n,m;int count=0;
void dfs(int i,int j)
{
 if(i<0||i>n||j<0||j>m)
  return ;
 if(array[i][j]!='W')
  return ;
 array[i][j]='.';
 dfs(i-1,j);dfs(i+1,j);dfs(i,j-1);dfs(i,j+1);dfs(i-1,j-1);dfs(i-1,j+1);dfs(i+1,j-1);dfs(i+1,j+1);
}
void check()
{
 int i,j;
 for(i=0;i<n;i++)
 {
  for(j=0;j<m;j++)
  {
   if(array[i][j]=='W')
   {
    dfs(i,j);
    count++;
   }
  }
 }

}
int main()
{
 cin>>n>>m;
 for( int i=0;i<n;i++)
 {
  for(int j=0;j<m;j++)
  {
   cin>>array[i][j];
  }
 }
 check();
 cout<<count<<endl;
 return 0;
}

你可能感兴趣的:(poj 2386)