zoukankan      html  css  js  c++  java
  • 宝岛探险

    #include <iostream>
    using namespace std;
    bool book[101][101];
    int a[101][101],n,m,step=1;
    void dfs(int x,int y)
    {
         int next[4][2]={{0,1}, 
                         {1,0},
                         {0,-1},
                         {-1,0}};
         int tx,ty;
         for(int i=0;i<4;i++)
         {
              tx=x+next[i][0];
              ty=y+next[i][1];
              if(tx<1 || tx>n || ty<1 || ty>m)
                  continue;
              if(a[tx][ty]>0 && book[tx][ty]==0)
              {
                  step++;
                  book[tx][ty]=1;
                  dfs(tx,ty);
              }
         }
         return;
    }
    int main()
    { 
        int sx,sy;
        cin>>n>>m>>sx>>sy;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                cin>>a[i][j];
        book[sx][sy]=1;
        dfs(sx,sy);
        cout<<step;
    
    }
        
    View Code
    试题描述
     YSF 通过秘密方法得到一张不完整的航拍地图。钓鱼岛由一个主岛和一些附属岛组成。数字表示海拔高度。0 表示海洋,1 到 9 都表示陆地。现在要计算出 YSF 跳伞所在岛的面积。此处我们把 YSF 的跳伞点上下左右相连接陆地均视为同一岛屿。
    输入
    第一行四个整数:n,m,startx,starty,表示地图有 n 行 m 列,降落点的初始坐标为(startx,starty),接下来的 n 行 m 列为地图各点的海拔高度。
    输出
    一个数,表示 YSF 跳伞所在岛的面积。
    输入示例
    10 10 6 8 1 2 1 0 0 0 0 0 2 3 3 0 2 0 1 2 1 0 1 2 4 0 1 0 1 2 3 2 0 1 3 2 0 0 0 1 2 4 0 0 0 0 0 0 0 0 1 5 3 0 0 1 2 1 0 1 5 4 3 0 0 1 2 3 1 3 6 2 1 0 0 0 3 4 8 9 7 5 0 0 0 0 0 3 7 8 6 0 1 2 0 0 0 0 0 0 0 0 1 0
    输出示例
    38
    其他说明
    数据范围:地图的大小不超过50*50。
  • 相关阅读:
    数据结构-图
    web.xml的运行顺序
    如何把自己打造成技术圈的 papi 酱
    也谈http中get和post
    手机充电速度及电池使用
    web项目Log4j日志输出路径配置问题
    JAVA模块化
    关于web安全
    Struts2中通配符
    2016第14周一
  • 原文地址:https://www.cnblogs.com/jason2003/p/6572430.html
Copyright © 2011-2022 走看看