zoukankan      html  css  js  c++  java
  • H

    - 题目大意

          就是求和‘@‘相连的‘.’有多少个(包括@,还有#是无法通过的)。

    - 解题思路

          用DFS即可解出

    - 代码

    #include<cstdio>
    #include<cstring>
    using namespace std;
    char maps[40][40];
    int vis[40][40];
    int dx[4] = { 1,-1,0,0 };
    int dy[4] = { 0,0,1,-1 };
    int sum,n,m;
    int dfs(int x,int y)
    {
    
        for(int i=0;i<4;i++)
        {
            int xx=dx[i]+x;
            int yy=dy[i]+y;
            if(maps[xx][yy]=='.'&&vis[xx][yy]==0&&xx>=0&&yy>=0&&xx<m&&yy<n)
               {
                   sum++;
                   vis[xx][yy]=1;
                   dfs(xx,yy);
               }
    
        }
        return sum;
    }
    
    int main()
    {
        int t,x,y;
        scanf("%d",&t);
        for(int i=1;i<=t;i++)
        {
            memset(vis,0,sizeof(vis));
            memset(maps,0,sizeof(maps));
            scanf("%d%d",&n,&m);
            sum=1;
            getchar();
            for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                {
                 scanf("%c",&maps[i][j]);
                    if(maps[i][j]=='@')
                    {
                        x=i;
                        y=j;
                    }
    
                }
               getchar();
            }
    
        int tmp=dfs(x,y);
        printf("Case %d: %d
    ",i,tmp);
        }
        return 0;
    }
    

      

  • 相关阅读:
    deque-pop_back
    deque-max_size
    deque-insert
    deque-insert
    deque-front
    deque-front
    deque-erase
    deque-erase
    deque-end
    Angular2入门教程-1
  • 原文地址:https://www.cnblogs.com/alpacadh/p/8431502.html
Copyright © 2011-2022 走看看