zoukankan      html  css  js  c++  java
  • HDU 1312 Red and Black【DFS】

    搜索虐我千万遍@_@-----一道搜索的水题,WA了好多好多次@_@发现是n,m搞反了-_-

    题意--

    给出m行 n列的矩形,其中从@出发,不能跳到#,只能跳到'.'问最多能够跳到多少块'.' 直接搜就好,不用剪枝

    #include <stdio.h>  
    #include <string.h>   
    int n,m,cnt;  
    char map[1000][1000];  
    int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
      
    void dfs(int x,int y)  
    {  
        cnt++;  
        map[x][y] = '#';  
        for(int k = 0; k<4; k++)  
        {  
            int a = x+dir[k][0];  
            int b = y+dir[k][1];  
            if(a<=m && b<=n && a>0 && b>0 && map[a][b] == '.')  
                dfs(a,b);  
        }  
        return;  
    }  
      
    int main()  
    {  
        int i,j,x,y;  
       while(scanf("%d %d",&n,&m)!=EOF&&n&&m)
    
       {
    	   for(i = 1; i<=m; i++)  
            {  
    		    getchar();
                for(j =1; j<=n; j++)  
                {  
                    scanf("%c",&map[i][j]);  
                    if(map[i][j] == '@')  
                    {  
                        x= i;  
                        y= j;  
                    }  
                }  
                
            }  
            cnt = 0;  
            dfs(x,y);  
            printf("%d
    ",cnt);  
       } 
        return 0;  
    }  
    

      加油学搜索--go--go

  • 相关阅读:
    单调队列
    Johnson全源最短路
    重链剖分
    矩阵快速幂
    Tarjan
    题解 UVA439 骑士的移动 Knight Moves
    题解 SP10500 HAYBALE
    题解 P4058 [Code+#1]木材
    题解 P3395 路障
    题解 SP24 FCTRL2
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4274881.html
Copyright © 2011-2022 走看看