flood fill演算法筆記(僅供學習)
bfs(最短路徑)
dfs(更方便)
有一間長方形的房子,地上鋪兩種顏色的正方形瓷磚。你站在其中一塊綠色的瓷磚上,只能向相鄰(上下左右四個方向)的綠色瓷磚移動。
bfs
while(佇列非空)
有一間長方形的房子,地上鋪了紅色、黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上,只能向相鄰(上下左右四個方向)的黑色瓷磚移動。請寫乙個程式,計算你總共能夠到達多少塊黑色的瓷磚。原題目輸入格式
輸入包括多個資料集合。
每個資料集合的第一行是兩個整數 w 和 h,分別表示 x 方向和 y 方向瓷磚的數量。
在接下來的 h 行中,每行包括 w 個字元。每個字元表示一塊瓷磚的顏色,規則如下
1)『.』:黑色的瓷磚;
2)『#』:紅色的瓷磚;
3)『@』:黑色的瓷磚,並且你站在這塊瓷磚上。該字元在每個資料集合中唯一出現一次。
當在一行中讀入的是兩個零時,表示輸入結束。
#include#include#include#define x first
#define y second
using namespace std;
typedef pairpii;
const int n = 25;
int n, m;
char g[n][n];
int bfs(int sx,int sy)
); g[sx][sy] = '#';
int res = 0;
int dx = , dy = ;
while(q.size()));}
}return res;
}int main()
cout <
}return 0;
}
FloodFill(泛洪演算法)
泛洪演算法圖形處理中的乙個填充演算法,我們可以設想這樣乙個場景,windows的畫圖軟體中的油漆桶為乙個形狀著色,該形狀的範圍內都將被著色,我們所使用的演算法就是從乙個畫素點出發,以此向周邊的畫素點擴充著色,直到圖形的邊界。這個場景我們使用的演算法就是flood fill 泛洪演算法 泛洪演算法有3...
DFS實現floodfill演算法
多組案例,每組案例輸入乙個m行n列的字元矩陣,統計字元 組成多少個連通塊。如果兩個字元 所在的格仔相鄰 橫 豎或對角線 則說明它們屬於同一連通塊。sample input 1 1 3 5 1 8 5 5 0 0sample output 012 21.找到油田,然後通過迴圈遍歷他周圍的八個位置,不斷...
FloodFill 漫水填充)演算法
在opencv裡有乙個函式,為cvfloodfill iplimage img,cvpoint seedpoint,cvscalar newval,cvscalar lodiff cvscalarall 0 cvscalar updiff cvscalarall 0 cvconnectedcomp ...