• POJ1562(DFS)


            就是找相连的油井有多少块。深搜就行了,只是注意方向是8个而不是4个。

            简单题,直接看代码:

    #include<stdio.h>
    #include<stdlib.h>
    
    int d[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};//从左上开始,顺时针
    char oil[101][101];
    int len,wid;
    
    void dfs(int x,int y); 
    int main()
    {
     int i,j,cnt;
     
       while(scanf("%d%d",&wid,&len))
       {
         getchar();
    	 if( !len && !wid) break ;
                                      
         for(i = 0 ; i < wid ; ++i)
         {
               scanf("%s",oil[i]);  
    		   getchar();
         } 
    	 
         cnt = 0 ; 
         for(i = 0 ; i < wid ; ++i)
         {
            for(j = 0 ; j < len ; ++j)    
            if(oil[i][j] == '@')
            {           
               dfs(i,j);
               ++cnt;            
            }   
         }               
               
         printf("%d\n",cnt);
                      
       }
           
     return 0;    
    }
    
    void dfs(int x,int y)
    {
       int i,a,b;
      
       oil[x][y] = '*';
       for(i = 0 ; i < 8 ; ++i)
       {
          a = x + d[i][0];
          b = y + d[i][1];
          if(a < 0 || a >= wid || b < 0 || b >= len)
            continue ;
          if(oil[a][b] == '@')
    	  {
            dfs(a,b); 
    	  }
       }  
      return ;  
    }
    
    
     

     汗!当初我把dfs()里越界检查那个wid,len弄反了。害得我调试了好久!以后不能再粗心大意了啊!

           

  • 相关阅读:
    css3中的位置移动
    css中伪元素选择器
    css中伪类选择器
    html5之属性选择器
    html5的文本属性
    html5的视频和音频使用
    常用的linux命令
    常见的http状态码
    springboot之安装和启动es
    linux版本的jdk安装
  • 原文地址:https://www.cnblogs.com/HpuAcmer/p/2248242.html
Copyright © 2020-2023  润新知