91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++數據結構之如何實現水洼數量算法

發布時間:2021-08-20 09:47:41 來源:億速云 閱讀:143 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關C++數據結構之如何實現水洼數量算法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

題目: 有一個大小為N*M的園子, 雨后起了積水. 八連通的積水被認為是連接在一起的. 請求出園子里總共有多少水洼.

使用深度優先搜索(DFS), 在某一處水洼, 從8個方向查找, 直到找到所有連通的積水. 再次指定下一個水洼, 直到沒有水洼為止.
則所有的深度優先搜索的次數, 就是水洼數. 時間復雜度O(8*M*N)=O(M*N).

代碼:

/* 
 * main.cpp 
 * 
 * Created on: 2014.7.12 
 *本欄目更多精彩內容:http://www.bianceng.cn/Programming/sjjg/
 *   Author: spike 
 */
   
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <math.h> 
   
class Program { 
  static const int MAX_N=20, MAX_M=20; 
  int N = 10, M = 12; 
  char field[MAX_N][MAX_M+1] = { 
      "W........WW.", 
      ".WWW.....WWW", 
      "....WW...WW.", 
      ".........WW.", 
      ".........W..", 
      "..W......W..", 
      ".W.W.....WW.", 
      "W.W.W.....W.", 
      ".W.W......W.", 
      "..W.......W."}; 
  void dfs(int x, int y) { 
    field[x][y] = '.'; 
    for (int dx = -1; dx <= 1; dx++) { 
      for (int dy = -1; dy <= 1; dy++) { 
        int nx = x+dx, ny = y+dy; 
        if (0<=dx&&nx<N&&0<=ny&&ny<=M&&field[nx][ny]=='W') dfs(nx, ny); 
      } 
    } 
    return; 
  } 
public: 
  void solve() { 
    int res=0; 
    for (int i=0; i<N; i++) { 
      for (int j=0; j<M; j++) { 
        if (field[i][j] == 'W') { 
          dfs(i,j); 
          res++; 
        } 
      } 
    } 
    printf("result = %d\n", res); 
  } 
}; 
   
   
int main(void) 
{ 
  Program P; 
  P.solve(); 
  return 0; 
}

輸出:

result = 3

感謝各位的閱讀!關于“C++數據結構之如何實現水洼數量算法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

平阳县| 甘德县| 中江县| 工布江达县| 都昌县| 大埔区| 册亨县| 新津县| 汤阴县| 乐山市| 垦利县| 连云港市| 邵武市| 偃师市| 肥东县| 北川| 阿尔山市| 专栏| 苍溪县| 沁水县| 长岛县| 石城县| 大渡口区| 深水埗区| 林西县| 绥江县| 璧山县| 江油市| 商水县| 宜兴市| 鞍山市| 调兵山市| 原阳县| 商丘市| 邛崃市| 龙口市| 邹城市| 翁源县| 闽清县| 拜城县| 佛冈县|