luogu1451 求細胞數量

2022-07-30 10:30:15 字數 1041 閱讀 9649

這道題有挺多注意的點的,主要是新手還是要學習乙個『

for(int i=0;i//

m=4for(int j=0;j//

n=10

}

void dfs(int x,int

y) }

1.遞迴轉移

if (a[x+dx[i]][y+dy[i]])

dfs(x+dx[i],y+dy[i]);//

如果有才搜

要注意,在這一步,由於有4種(多種)可能,所以不能夠改變x,y原有的數值

不能寫成

x=+dx[i];

y=+dy[i];

if(a[x][y])

dfs(x,y);

這樣比如,i=0的時候是一樣的,

可是如果再下一次,即i=1的時候,則是在i=0改變後的x,y再改變,

而不是從原有的x,y轉移而來

2,在界內再搜尋,只要滿足界內就可以

if(x<0||y<0||x>m||y>n) return;

3.改變點的狀態

要把這個點清零

a[x][y]=0;

其實在實際操作是213的順序,可以說是途徑型的典型

在輸入時有使用的技巧,確保每次輸入乙個

scanf("

%1d",&a[i][j]);

#includeusing

namespace

std;

int dx[4]=;

int dy[4]=;

intn,m;

intans;

int a[110][110

];void dfs(int x,int

y) }

intmain()

for(int i=0;i//

m=4for(int j=0;j//

n=10

}cout

}

P1451 求細胞數量

這是一道典型的廣搜裸題,不多說,上 const z array 1.4,1.2 of longint 1,0 1,0 0,1 0,1 var i,j,k,t,h,q longint a array 20.1000,20.1000 of char x,y,s array 2.1000 of longi...

P1451 求細胞數量

題目描述 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入輸出格式 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入輸出樣例 輸入樣例 1 4 10 0234500...

Luogu P1451 求細胞數量

一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右若還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。1 m,n 100 輸入格式 輸入 整數m,n m行,n列 矩陣輸出格式 輸出 細胞的個數 輸入樣例 1 4 10 0234500067 1034560500 2045...