hdoj 1241解题报告

来源:互联网 发布:网络电视能看电视频道 编辑:程序博客网 时间:2024/06/16 06:17
#include<iostream>#include<cstdio>#include<cmath>using namespace std;char map[101][101];int flag;void dfs(int i,int j){    if(map[i][j]=='*')return;        map[i][j] = '*';        //下面遍历8个方向        dfs(i-1,j-1);dfs(i-1,j);dfs(i-1,j+1);        dfs(i,j-1);             dfs(i,j+1);        dfs(i+1,j-1);dfs(i+1,j);dfs(i+1,j+1);    flag = 1;    return;}int main(){    int n, m, i,j,cnt=0;    while(cin>>n>>m,n,m){        cnt = 0;        for(i=1;i<=n;i++)        scanf("%s",map[i]+1);        for(i=0;i<=m;i++){            map[i][0] = map[0][i] = '*';//将边缘的设置为null            }        for(i=1;i<=n;i++)//开始深度优先搜索            for(j=1;j<=m;j++)            {                if(map[i][j]=='@'){                dfs(i,j);                if(flag)cnt++;                }            }        cout<<cnt<<endl;    }    return 0;}

心情不错,一次ac,貌似搜索算法已经开始入门了!
原创粉丝点击