其他分享
首页 > 其他分享> > LuoguP1596 [USACO10OCT]湖计数Lake Counting 题解

LuoguP1596 [USACO10OCT]湖计数Lake Counting 题解

作者:互联网

深搜即可,代码如下:

#include <bits/stdc++.h>
using namespace std;

char a[200][200];
int dx[8]={-1,-1,-1,0,0,1,1,1},dy[8]={-1,0,1,-1,1,-1,0,1};
int ans,n,m;
void dfs(int x,int y) {
    a[x][y]='.';
    for(int i=0; i<8; ++i) {
        int xx=x+dx[i];
        int yy=y+dy[i];
        if((xx>=0)&&(xx<n)&&(yy>=0)&&(yy<m)&&(a[xx][yy]=='W'))
            dfs(xx,yy);
    }
}
int main() {
    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]=='W') {
                dfs(i,j);
                ans++;
            }
    cout<<ans<<endl;
    return 0;
}

标签:200,dx,int,题解,Lake,LuoguP1596,&&
来源: https://www.cnblogs.com/Eason-AC/p/15725314.html