|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㷨114~116ҳ<36><D2B3><EFBFBD><EFBFBD>
|
|
|
|
|
/*ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ͼ<EFBFBD>ϵĶ<CFB5><C4B6><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>*/
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
int a[51][51];
|
|
|
|
|
int book[51][51],n,m,sum;
|
|
|
|
|
void dfs(int x,int y,int color) {
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҡ<EFBFBD><D2A1><EFBFBD><EFBFBD>¡<EFBFBD><C2A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>˳ʱ<CBB3>룩
|
|
|
|
|
int next[4][2]= {{0,1}, {1,0},{0,-1},{-1,0}};
|
|
|
|
|
int k,tx,ty;
|
|
|
|
|
|
|
|
|
|
a[x][y]=color;//<2F><>a[x][y]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦɫ
|
|
|
|
|
//<2F>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD>
|
|
|
|
|
for(k=0; k<4; k++) {
|
|
|
|
|
tx=x+next[k][0];//Ҫ<><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
ty=y+next[k][1];
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
|
|
|
|
if(tx<1||tx>n||ty<1||ty>m)
|
|
|
|
|
continue;
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ½<CEAA>ؼ<EFBFBD><D8BC>Ƿ<C7B7><F1B1BBB1><EFBFBD>
|
|
|
|
|
if(a[tx][ty]>0 && book[tx][ty]==0) {
|
|
|
|
|
sum++;
|
|
|
|
|
book[tx][ty]==1;
|
|
|
|
|
//<2F><><EFBFBD>Ǹõ<C7B8><C3B5><EFBFBD><EFBFBD>߹<EFBFBD>
|
|
|
|
|
dfs(tx,ty,color); //<2F>Ըõ<D4B8><C3B5><EFBFBD>ɫ <20><><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>dfs()<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int i,j,num=0;
|
|
|
|
|
scanf("%d %d %d",&n,&m);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n m
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|
|
|
|
for(i=1; i<=n; i++) {
|
|
|
|
|
for(j=1; j<=m; j++) {
|
|
|
|
|
scanf("%d",&a[i][j]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD>ĵ㳢<C4B5>Խ<EFBFBD><D4BD><EFBFBD>dfsȾɫ
|
|
|
|
|
for(i=1; i<=n; i++) {
|
|
|
|
|
for(j=1; j<=m; j++) {
|
|
|
|
|
if(a[i][j]>0) {
|
|
|
|
|
num--; //<2F><><EFBFBD><EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ for(i=1;i<=n;i++)
|
|
|
|
|
book[i][j] = 1;
|
|
|
|
|
dfs(i,j,num);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD>ĵ<EFBFBD>ͼ
|
|
|
|
|
for(i=1; i<=n; i++) {
|
|
|
|
|
for(j=1; j<=m; j++) {
|
|
|
|
|
printf("%3d",a[i][j]);//3<><33>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>еij<D0B5><C4B3><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
printf("\n");
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
|
|
|
|
|
printf("<EFBFBD><EFBFBD>%d<><64>С<EFBFBD><D0A1>\n",-num);
|
|
|
|
|
getchar();
|
|
|
|
|
getchar();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|