HDU 6113 度度熊的01世界 暴力dfs)

2021-08-06 03:36:11 字數 901 閱讀 9634

因為條件是存在乙個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字元只能是由...