這道題有挺多注意的點的,主要是新手還是要學習乙個『
for(int i=0;i//m=4for(int j=0;j//
n=10
}
void dfs(int x,inty) }
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]);
#includeusingnamespace
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...