zoukankan      html  css  js  c++  java
  • UVA 572 Oil Deposits

    UVA_572

    这是个相对容易的搜索题目,只要依次遍历图,遇到没有访问过的“@”就开始广搜或者深搜,直到把8个方位相邻的“@”都搜完位置。

    每进入一次搜索,总数就加1

    #include<stdio.h>
    #include
    <string.h>
    int a[110][110],vis[110][110],num;
    char b[110];
    int dx[]={-1,1,0,0,-1,-1,1,1};
    int dy[]={0,0,-1,1,-1,1,-1,1};
    void dfs(int x,int y)
    {
    int i,newx,newy;
    for(i=0;i<8;i++)
    {
    newx
    =x+dx[i];
    newy
    =y+dy[i];
    if(a[newx][newy]&&!vis[newx][newy])
    {
    vis[newx][newy]
    =1;
    dfs(newx,newy);
    }
    }
    }
    int main()
    {
    int i,j,k,m,n;
    while(1)
    {
    scanf(
    "%d%d",&m,&n);
    if(m==0)
    break;
    memset(a,
    0,sizeof(a));
    for(i=1;i<=m;i++)
    {
    scanf(
    "%s",b+1);
    for(j=1;j<=n;j++)
    if(b[j]=='@')
    a[i][j]
    =1;
    }
    num
    =0;
    memset(vis,
    0,sizeof(vis));
    for(i=1;i<=m;i++)
    for(j=1;j<=n;j++)
    if(a[i][j]==1&&!vis[i][j])
    {
    num
    ++;
    vis[i][j]
    =1;
    dfs(i,j);
    }
    printf(
    "%d\n",num);
    }
    return 0;
    }

      

  • 相关阅读:
    1.1 HTML5简介
    MATLAB基础知识——1.1MATLAB系统变量
    初识MATLAB
    Z-Stack
    [C语言]关于struct和typedef struct
    [Zigbee]定时器1
    常用数论算法
    SPFA&邻接表 PASCAL
    kruskal算法-Pascal
    懒惰的JY--关于遍历
  • 原文地址:https://www.cnblogs.com/staginner/p/2171594.html
Copyright © 2011-2022 走看看