A-Oil Deposits

来源:互联网 发布:淘宝联盟佣金规则 编辑:程序博客网 时间:2024/06/08 20:03

FloodFill,没什么好说的,因为油田面积不会超过100,所以dfs没有任何压力……

#include <cstdio>#include <cstring>#include <cstdlib>int dx[10] = {0, 1, 1, 1, 0, 0, -1, -1, -1},    dy[10] = {0, -1, 0, 1, -1, 1, -1, 0, 1};char g[110][110];int n, m;int f[110][110];void dfs(int x, int y, int color) {    if (f[x][y]) return;    f[x][y] = color;    for (int i=1; i<=8; ++i) {        int xx = x+dx[i], yy= y+dy[i];        if ((xx<0) || (xx>=n) || (yy<0) || (yy>=m)) continue;        if ((!f[xx][yy])&&(g[xx][yy]=='@')) {            dfs(xx, yy, color);        }    }}void doit() {    char waste[50];    int c = 0;    scanf("%d%d", &n, &m);    gets(waste);    memset(f, 0, sizeof(f));    memset(g, 0, sizeof(g));    if (n==0) exit(0);    for (int i=0; i<n; ++i) {        gets(g[i]);    }    for (int i=0; i<n; ++i) {        for (int j=0; j<m; ++j) {            if ((!f[i][j]) && (g[i][j]=='@')) {                dfs(i,j,++c);            }        }    }    printf("%d\n", c);}int main() {    while(1) {        doit();    }    return 0;}


大神们别鄙视我的代码……

原创粉丝点击