(查錯有了收穫qwq開心)
給出乙個 n xm
的 01 矩陣,求其中最大的乙個全為1
的連通塊。
其中連通按四連通計算,即相鄰兩個格仔都是1
算連通,但斜著的兩個格仔不算連通。
從標準輸入讀入資料。
輸入的第一行包含乙個正整數 t ,表示資料的組數。保證 t = 5 。
對於每個部分,第一行包含兩個正整數 n 和 m ,保證 1 \le n,m \le 1000 。
接下來 n 行,每行為乙個長度為 m 的字串,表示每個格仔的情況。為0
表示格仔為白色,為1
表示格仔為黑色。保證至少有乙個黑色的格仔,保證不會出現其他字元。
輸出到標準輸出。
輸出 t 行,每行乙個整數,表示最大的全為1
的連通塊。
5
5 510011
00110
01010
11110
11010
5 500000
00000
00000
00000
00100
5 501100
10011
10110
10101
10100
5 500101
10111
10001
01011
11011
5 501110
01101
11000
00110
10010
對於測試點 1 ,保證 n = 1, m = 10 。
對於測試點 2 ,保證 n = 1, m = 1000 。
對於測試點 3 ,保證 n = 4, m = 4 。
對於測試點 4 ,保證 n = 5, m = 6 。
對於測試點 5 ,保證 n = 1000, m = 1000 。
//40分**(只有一行的)#includeusing
namespace
std;
int maxn[25];//
當前最長和最終最長
intn,nn,mm;
char aa[1005
];int
main()
else
if(aa[j]=='
0')now=1
; }
} i++;
}//這是迴圈結束的那個後括號=.=
for(int i=1;i<=n;i++)coutreturn0;
}
//100分**#include #include
using
namespace
std;
intt, n, m, ans, sum;
char map[6][1005][1005
];bool searched[1005][1005
];int dx[4] = , dy[4] = , tx, ty;
void search(int z, int x, int
y) }
}int
main()
for (int i = 1; i <= 5; i++)
cout
<< ans
; ans = 0
; memset(searched,
0, sizeof
(searched));
}return0;
}
OpenCV計算連通區域數目與最大連通區域並標示出
cpp view plain copy print?include include include pragma comment lib,cv.lib pragma comment lib,cxcore.lib pragma comment lib,highgui.lib intmain intar...
OpenCV計算連通區域數目與最大連通區域並標示出
include include include pragma comment lib,cv.lib pragma comment lib,cxcore.lib pragma comment lib,highgui.lib intmain intargc,char argv cvrect arect ...
OpenCV計算連通區域數目與最大連通區域並標示出
include include include pragma comment lib,cv.lib pragma comment lib,cxcore.lib pragma comment lib,highgui.lib intmain int argc,char ar cvrect arect c...