C 資料結構之水窪的數量演算法

2022-09-27 03:27:10 字數 662 閱讀 8421

c++ 資料結構之水窪的數量演算法

題目: 有乙個大小為n*m的園子, 雨後起了積水. 八連通的積水被認為是連線在一起的. 請求出園子裡總共有多少水窪.

使用深度優先搜尋(dfs), 在某一處水窪, 從8個方向查詢, 直到找到所有連通的積水. 再次指定下乙個水窪, 直到沒有水窪為止.

則所有的深度優先搜尋的次數, 就是水窪數. 時間複雜度o(8*m*n)=o(m*n).

**:/*

* main.cpp

* * created on: 2014.7.12

*本欄目內容:

* awww.cppcns.comuthor: spike

*/

#include

#include

#include

#include

class program ;

void dfs(int x, int y)

public:

void solve() {

int res=0;

for (int i=0; ijjvsqpr; i++) {

for (int j=0; j

輸出:result = 3

本文標題: c++ 資料結構之水窪的數量演算法

本文位址:

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 c 排序演算法

排序是將乙個記錄的任意序列,重新排列成乙個按關鍵字有序的序列 按非遞減或非遞增 排序演算法按排序過程中依據的不同原則可以大致分為五類 插入排序 交換排序 選擇排序 歸併排序 基數排序。下面程式均使無序序列排序成非遞減序列。資料結構使用順序表,並初始化8個元素 49,38,65,97,76,13,27...

c 資料結構(1 2演算法)

程式 資料結構 演算法 可見演算法的重要程度。下面只從演算法的特性 演算法的評價標準和演算法的時間複雜度等三個方面進行介紹。乙個演算法應該具備以下 5 個特性 1 有窮性 finity 乙個演算法總是在執行有窮步之後結束,即演算法的執行時間是有限的。2 確定性 unambiguousness 演算法...