POJ 1979 DFS

简介: 题目链接:http://poj.org/problem?id=1979 #include #include using namespace std; int n=0,h=0,sum=0; char aa[21][21]; void DFS(int p,int q) { if(aa[p][q]=='.

题目链接:http://poj.org/problem?id=1979

#include<cstring>
#include<iostream>
using namespace std;
int n=0,h=0,sum=0;
char aa[21][21];

void DFS(int p,int q)
{
    if(aa[p][q]=='.'&&p>=0&&p<h&&q>=0&&q<n)
{
    sum++;
    aa[p][q]='#';
}
else return ;
    DFS(p-1,q);
    DFS(p+1,q);
    DFS(p,q-1);
    DFS(p,q+1);
}
int main()
{

    while(cin>>n>>h)
    { if(n==0||h==0)break;
        int p=0,q=0;
        sum=0;
        memset(aa,0,sizeof(aa));
        for(int i=0;i<h;i++)
           for(int j=0;j<n;j++)
           {

            cin>>aa[i][j];

               }
               for(int i=0;i<h;i++)
           for(int j=0;j<n;j++)
           {
                    if(aa[i][j]=='@')
                    {
                        p=i;q=j;
                    aa[i][j]='.';
                    }


            }
            DFS(p,q);
    cout<<sum<<endl;
    }

    return sum;
}

 

相关文章
|
算法
DFS and BFS
DFS and BFS
52 0
|
算法
【和zqy学算法】Day1:DFS与BFS
【和zqy学算法】Day1:DFS与BFS
154 0
|
算法 Java Python
【算法题解】 Day6 BFS | DFS
今天的算法是 「BFS | DFS」 相关,“算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,以实战习题的形式理解算法,使用算法。”
106 0
|
算法 Java 索引
【算法题解】 Day10 BFS | DFS
今天的算法是 「BFS | DFS」 相关,“算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,以实战习题的形式理解算法,使用算法。”
107 0
|
定位技术 ice
POJ-3009,Curling 2.0(DFS)
POJ-3009,Curling 2.0(DFS)
|
数据采集 算法 容器
一文带你了解dfs和bfs算法
dfs算法又称深度优先搜索,是计算机术语。 1、dfs是一种在开发爬虫早期使用较多的方法,是搜索算法的一种。 2、dfs的目的是要达到被搜索结构的叶结点,即那些不包含任何超链的HTML文件。 3、dfs根据已有的邻接矩阵或邻接表用递归方法编写深度优先搜索遍历算法,并输出遍历结果 作为搜索算法的一种,DFS对于寻找一个解的NP(包括NPC)问题作用很大。但是,搜索算法毕竟是时间复杂度是O(n!)的阶乘级算法,它的效率非常低,在数据规模变大时,这种算法就显得力不从心了。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止
402 0
|
机器学习/深度学习
POJ-1321,棋盘问题(DFS)
POJ-1321,棋盘问题(DFS)
洛谷P1331-海战(简单的DFS)
洛谷P1331-海战(简单的DFS)
黑白棋_lduoj_dfs深搜
Description Lagno是一种二人智力游戏。游戏设有一个黑方和一个白方。游戏桌面是正方形的,包含8行8列。 如果黑方玩家走出这样一步棋:将一枚黑子放在任一空格上,而在这个空格的八个方向(上、下、左、右和4个对角线方向)的至少一个方向上有一排白子被夹在这枚新下的黑子和其他黑子之间,任何方向,在新黑子和原来黑子之间的所有白子都要变成黑子。为这个游戏设计一个程序,计算一步棋中黑方能转变的白子数量的最大值。 Input 输入文件lango.in共8行,每行8个字符;“.”代表一个空格;“B”代表黑子,“W”代表白子
109 0