《搜索》hdoj 1241 dfs模版

#include<stdio.h>
char s[150][150]; int move[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; int n,m,k,ans; void dfs(int x,int y) { int i; for(i=0;i<8;i++) { int tx=x+move[i][0]; int ty=y+move[i][1]; if(tx>=0&&tx<n&&ty>=0&&ty<m&&s[tx][ty]=='@') {
            s[tx][ty]='*';
            dfs(tx,ty); } } } int main() { int i,j; while(scanf("%d%d",&n,&m)) {
        ans=0; if(n+m==0) break; for(i=0;i<n;i++) {
            scanf("%s",s[i]); } for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(s[i][j]=='@') {
                    s[i][j]='*';
                    ans++;
                    dfs(i,j); } } }
        printf("%d\n",ans); } return 0; }

你可能感兴趣的:(《搜索》hdoj 1241 dfs模版)