problem description
度度熊是乙個喜歡計算機的孩子,在計算機的世界中,所有事物實際上都只由0和1組成。
現在給你乙個n*m的影象,你需要分辨他究竟是0,還是1,或者兩者均不是。
影象0的定義:存在1字元且1字元只能是由乙個連通塊組成,存在且僅存在乙個由0字元組成的連通塊完全被1所包圍。
影象1的定義:存在1字元且1字元只能是由乙個連通塊組成,不存在任何0字元組成的連通塊被1所完全包圍。
連通的含義是,只要連續兩個方塊有公共邊,就看做是連通。
完全包圍的意思是,該連通塊不與邊界相接觸。
input
本題包含若干組測試資料。 每組測試資料報含: 第一行兩個整數n,m表示影象的長與寬。 接下來n行m列將會是只有01組成的字元畫。
滿足1<=n,m<=100
output
如果這個圖是1的話,輸出1;如果是0的話,輸出0,都不是輸出-1。
sample input
32 32sample outpu000000000000000000000000000000000
00000000000111111110000000000000
00000000001111111111100000000000
00000000001111111111110000000000
00000000011111111111111000000000
00000000011111100011111000000000
00000000111110000001111000000000
00000000111110000001111100000000
00000000111110000000111110000000
00000001111110000000111110000000
00000001111110000000011111000000
00000001111110000000001111000000
00000001111110000000001111100000
00000001111100000000001111000000
00000001111000000000001111000000
00000001111000000000001111000000
00000001111000000000000111000000
00000000111100000000000111000000
00000000111100000000000111000000
00000000111100000000000111000000
00000001111000000000011110000000
00000001111000000000011110000000
00000000111000000000011110000000
00000000111110000011111110000000
00000000111110001111111100000000
00000000111111111111111000000000
00000000011111111111111000000000
00000000111111111111100000000000
00000000011111111111000000000000
00000000001111111000000000000000
00000000001111100000000000000000
00000000000000000000000000000000
32 32
00000000000000000000000000000000
00000000000000001111110000000000
00000000000000001111111000000000
00000000000000011111111000000000
00000000000000111111111000000000
00000000000000011111111000000000
00000000000000011111111000000000
00000000000000111111110000000000
00000000000000111111100000000000
00000000000001111111100000000000
00000000000001111111110000000000
00000000000001111111110000000000
00000000000001111111100000000000
00000000000011111110000000000000
00000000011111111110000000000000
00000001111111111111000000000000
00000011111111111111000000000000
00000011111111111111000000000000
00000011111111111110000000000000
00000000001111111111000000000000
00000000000000111111000000000000
00000000000001111111000000000000
00000000000111111110000000000000
00000000000011111111000000000000
00000000000011111111000000000000
00000000000011111111100000000000
00000000000011111111100000000000
00000000000000111111110000000000
00000000000000001111111111000000
00000000000000001111111111000000
00000000000000000111111111000000
00000000000000000000000000000000
3 3101
101011
1-1——————————————————————————————————————————————
這道題在外面加一圈0就好了(這個是防止被一坨1卡的尷尬)
然後就是聯通塊染色
如果1有乙個0兩個就是0
如果1有乙個0也乙個就是1
不然就是-1
#include#includeview code#include
#include
using
namespace
std;
intn,m,cnt1,cnt2;
char s[155][155
];bool f,vis[155][155
];int xi[5]=,yi[5]=;
struct
nodeq[
155*155
];void dfs(int xx,int yy,char
c) }
}}int
main()
if(cnt1==1&&cnt2==2) printf("
0\n"
);
else
if(cnt1==1&&cnt2==1) printf("
1\n"
);
else printf("
-1\n");
}return0;
}
百度之星 初賽B
a 傳送門 點我 求聯通塊個數,對於簡單圖而言,就是c v e,其中c就是聯通塊個數,v是頂點數,e是邊數 include include include include using namespace std const int max n 2e5 10 int n,m,k vectorg max...
百度之星2017初賽題解(A)
t1 簡單數論,問滿足 a0 a1 b an b n a0 a1 an mod p 的p的個數 即滿足p b 1 a1 b 2 1 a2 b 3 1 a3 即p b 1的p的個數 sqrt b 1 暴力列舉b 1約數即可 t2 現在給若干個條件,xi xj或xi xj,要你將它們劃分成若干組,滿足每...
2018百度之星初賽1003
problem description 度度熊有一張紙條和一把剪刀。紙條上依次寫著 n 個數字,數字只可能是 0 或者 1。度度熊想在紙條上剪 k 刀 每一刀只能剪在數字和數字之間 這樣就形成了 k 1 段。他再把這 k 1 段按一定的順序重新拼起來。不同的剪和接的方案,可能會得到不同的結果。度度熊...