暑期集训搜索专题(一)

来源:互联网 发布:js new一个对象 编辑:程序博客网 时间:2024/05/29 14:08

A题 深度优先搜索
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=84263#problem/A

#include<stdio.h>#include<algorithm>using namespace std;int b[8]={0,0,1,1,1,-1,-1,-1};int c[8]={1,-1,0,1,-1,0,1,-1};int m,n;char a[110][110];void dfs(int i,int j){    int x,y,u;    for(u=0;u<8;u++)    {        x=i+b[u];        y=j+c[u];        if(x>=0&&y>=0&&x<=m&&y<=n&&a[x][y]=='@')        {            a[x][y]='*';            dfs(x,y);        }    }}int main(){    int i,j;    while(scanf("%d%d",&m,&n)!=EOF)    {        int t=0;        if(m==0||n==0)        {            break;        }        else        {            for(i=0;i<m;i++)            {                scanf("%s",a[i]);            }            for(i=0;i<m;i++)            {                for(j=0;j<n;j++)                {                    if(a[i][j]=='@')                    {                        a[i][j]='*';                        dfs(i,j);                        t++;                    }                }            }        }        printf("%d\n",t);    }}
0 0