zoukankan      html  css  js  c++  java
  • POJ 1562

    此题不难,典型的DFS,但是却WN了N次。应为本题的测试数据m,n后可能有空格,所以把scanf("%c")改成scanf(“%S);

    #include <stdio.h>
    #include <memory.h>
    const int maxn=100+10;
    int m,n;
    int count;
    int visit[maxn][maxn];
    char map[maxn][maxn];
    void dfs(int x,int y);
    int dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};
    int main()
    {
    	while(scanf("%d%d",&m,&n)==2)
    	{
    		if(m==0) break;
    		count=0;
    		int i,j;
    		memset(visit,0,sizeof(visit));
    		for(i=0;i<m;i++)
    		{
    		scanf("%s",&map[i]);//
    		}
    	
    		for(i=0;i<m;i++)
    		{
    			for(j=0;j<n;j++)
    			{
    				if(map[i][j]=='@'&&visit[i][j]==0)
    				{
    					count++;
    					dfs(i,j);
    					
    				}
    			}
    		}
    		printf("%d\n",count);
    
    	}
    	return 0;
    }
    void dfs(int x,int y)
    {
    	if(x<0||x>=m||y<0||y>=n||visit[x][y]||map[x][y]=='*') return;
    	else
    	{
    		visit[x][y]=1;
    		int dx,dy;
    		for(int i=0;i<8;i++)
    		{
    			dx=x+dir[i][0];
    			dy=y+dir[i][1];
    			dfs(dx,dy);
    		}
    	}
    
    }


  • 相关阅读:
    对SpringIOC、AOP的理解
    Java后台与VUE跨域交接
    贼简单的Shiro框架之粗粒度控制菜单栏
    Json
    Spring MVC小DEMO
    面试问题
    多线程理解
    了解java语言
    单点登录如何设计
    进程的创建和调度分析
  • 原文地址:https://www.cnblogs.com/lj030/p/3002335.html
Copyright © 2011-2022 走看看