因為條件是存在乙個1的聯通塊包含著乙個0的聯通快的才是0所以,我們先預處理邊界,對於0的邊界處理成以訪問過,對於邊界是1的不做操作。
然後暴力判斷每個點是否訪問過來進行dfs求聯通塊的個數,如果0的個數和1的個數都是1,那麼可以肯定影象為0,如果0的個數是0,1的個數是1,那麼影象為1。
#include
#include
#include
#include
#include
#define eps 1e-8
typedef
long
long
int lli;
using
namespace
std;
int ma[550][550];
bool v[550][550];
char s[550];
int dir[4][2] = ;
void dfs(int x,int ii,int jj)
}}int main()
}for(int j = 1;j <= m;j++)
for(int i = 1;i <= n;i++)
int cnt0=0,cnt1=0;
for(int i = 1;i <= n;i++)
if(ma[i][j]==-1)
dfs(ma[i][j],i,j);}}
}if(cnt0==cnt1 && cnt1==1)
else
if(cnt0==0 && cnt1 == 1)
else
puts("-1");
}return
0;}
HDU 6113 度度熊的01世界(dfs)
題目 這裡寫鏈結內容 思路 在n m影象周圍圍一圈 0 然後找0和1的聯通塊數,1聯通塊數肯定為1才行 0聯通塊數如果滿足 影象0的定義 那麼必須只有兩個聯通塊,滿足 影象1的定義 必須只有乙個聯通塊。include using namespace std const int n 105 char ...
hdu6113度度熊的01世界 dfs求連通塊
題意 度度熊是乙個喜歡計算機的孩子,在計算機的世界中,所有事物實際上都只由0和1組成。現在給你乙個n m的影象,你需要分辨他究竟是0,還是1,或者兩者均不是。影象0的定義 存在1字元且1字元只能是由乙個連通塊組成,存在且僅存在乙個由0字元組成的連通塊完全被1所包圍。影象1的定義 存在1字元且1字元只...
度度熊的01世界 DFS
度度熊是乙個喜歡計算機的孩子,在計算機的世界中,所有事物實際上都只由0和1組成。現在給你乙個n m的影象,你需要分辨他究竟是0,還是1,或者兩者均不是。影象0的定義 存在1字元且1字元只能是由乙個連通塊組成,存在且僅存在乙個由0字元組成的連通塊完全被1所包圍。影象1的定義 存在1字元且1字元只能是由...