You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
#include<iostream>
|
|
|
|
|
using namespace std;
|
|
|
|
|
int main() {
|
|
|
|
|
struct mark {
|
|
|
|
|
int x;
|
|
|
|
|
int y;
|
|
|
|
|
};
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
struct mark que[2501];
|
|
|
|
|
int square=1;
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int head,tail;
|
|
|
|
|
int n,m;
|
|
|
|
|
int p,q,k;
|
|
|
|
|
int book[51][51];
|
|
|
|
|
//ʹ<><CAB9>book<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7><F1BEADB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int a[51][51];
|
|
|
|
|
int color=0;
|
|
|
|
|
//<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱦɫ<C8BE><C9AB><EFBFBD><EFBFBD>ͳ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
head=1;
|
|
|
|
|
tail=1;
|
|
|
|
|
cout << "please input the map of row and col: ";
|
|
|
|
|
cin >> n >>m;
|
|
|
|
|
cout << "please input the map: "<<endl;
|
|
|
|
|
for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j) cin >> a[i][j];
|
|
|
|
|
for(p=1; p<=n; ++p) {
|
|
|
|
|
for(q=1; q<=m; ++q) {
|
|
|
|
|
if(a[p][q]>0)
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
color--;
|
|
|
|
|
book[p][q]=1;
|
|
|
|
|
que[tail].x=p;
|
|
|
|
|
que[tail].y=q;
|
|
|
|
|
++tail;
|
|
|
|
|
while(head<tail)
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
int next[4][2]= {{1,0},
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飬ʵ<E9A3AC>ֶ<EFBFBD><D6B6>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6> {0,1}, {0,-1}, {-1,0}};
|
|
|
|
|
a[p][q]=color;
|
|
|
|
|
for(k=0; k<4; ++k) {
|
|
|
|
|
int tx=que[head].x+next[k][0];
|
|
|
|
|
int ty=que[head].y+next[k][1];
|
|
|
|
|
if((tx < 0) || (ty < 0) || (tx > n) || (ty > m))
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
|
|
|
|
continue;
|
|
|
|
|
if((a[tx][ty]>0) && (book[tx][ty] == 0))
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Ϊ½<CEAA>ء<EFBFBD><D8A1>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ǹ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
book[tx][ty]=1;
|
|
|
|
|
++square;
|
|
|
|
|
a[tx][ty]=color;
|
|
|
|
|
que[tail].x=tx;
|
|
|
|
|
que[tail].y=ty;
|
|
|
|
|
++tail;
|
|
|
|
|
}
|
|
|
|
|
} ++head;
|
|
|
|
|
//<2F><>һ<EFBFBD><D2BB><EFBFBD>ܹؼ<DCB9><D8BC><EFBFBD>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>Ϻõ<F3A3ACB8><C3B5><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>൱<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for(int i=1; i<=n; ++i) {
|
|
|
|
|
for(int j=1; j<=m; ++j) {
|
|
|
|
|
cout << a[i][j] <<" ";
|
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
cout << "the island of the square : " << square <<endl;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|