題目描述
程式設計計算由『*』號圍成的下列圖形的面積。面積的計算方法是統計*號所圍成
的閉合曲線中水平線和垂直線交點的數目。如圖所示,在10*10 的二維陣列中,
有*圍住了15 個點,因此面積為15。
0 0 0 0 0 0 0 0 0 0
0 0 0 0 * * * 0 0 0
0 0 0 0 * 0 0 * 0 0
0 0 0 0 0 * 0 0 * 0
0 0 * 0 0 0 * 0 * 0
0 * 0 * 0 * 0 0 * 0
0 * 0 0 * * 0 * * 0
0 0 * 0 0 0 0 * 0 0
0 0 0 * * * * * 0 0
0 0 0 0 0 0 0 0 0 0
輸入乙個10*10 的二維陣列, 裡面的數為0 和1,1 代表著*號。
輸出乙個整數, 被圍住的點。
樣例輸入
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
樣例輸出
15這道題可以用寬搜來解決。
先開兩個佇列,用來存走過的每乙個點的座標。之後直接計算閉合區間的面積是很費勁的,但是如果把這個面積之外到整個邊界的數都轉換成「1」的話,就可以直接算「0」的個數,就是圖形的面積了。
所以:
#include#include#include
using
namespace
std;
int map[15][15
];int nx[5] = ;
int ny[5] = ;
queue
x;queue
y;void bfs(int a,int
b) }
x.pop();
y.pop();
}}int
main()
bfs(
0,0);
for(int i = 0; i <= 11; i++)
}cout
return0;
}
閉合區域面積統計
閉合區域面積統計 area 題目描述 程式設計計算由 號圍成的下列圖形的面積。面積的計算方法是統計 號所圍成的閉合曲線中水平線和垂直線交點的數目。如圖所示,在10 10 的二維陣列中,有 圍住了15 個點,因此面積為15。輸入乙個10 10 的二維陣列,裡面的數為0 和1,1 代表著 號。輸出乙個整...
matlab去除大面積連通區域
在利用進行影象形態學處理的時候,經常需要去除面積較大或面積較小的連通區域。對於去除面積較小的連通區域,matlab提供了現有的函式 bw2 bwareaopen bw,p,conn 刪除二值影象bw中面積小於p的物件,預設情況下conn使用8鄰域可是matlab並沒有去除面積較大連通區域的函式,當然...
bwlabel函式 統計連通區域 MATLAB
matlab bwlabel函式 統計連通區域 使用dfs計算連通區域個數 4連通域邊界填充演算法和8連通域邊界填充演算法c l bwlabel bw,n 返回乙個和bw大小相同的l矩陣,包含了標記了bw中每個連通區域的類別標籤,這些標籤的值為1 2 num 連通區域的個數 n的值為4或8,表示是按...