1359:围成面积

简介: 1359:围成面积

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10×10的二维数组中,有“*”围住了15个点,因此面积为15。

【输入】

10×10的图形。

【输出】

输出面积。

【输入样例】

0 0 0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 0 0 0

0 0 0 0 1 0 0 1 0 0

0 0 0 0 0 1 0 0 1 0

0 0 1 0 0 0 1 0 1 0

0 1 0 1 0 1 0 0 1 0

0 1 0 0 1 1 0 1 1 0

0 0 1 0 0 0 0 1 0 0

0 0 0 1 1 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0

【输出样例】

15

 

1. #include <iostream>
2. #include <cstring>
3. using namespace std;
4. int map[12][12];
5. int xy_[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
6. int deq[600][2]; 
7. bool book[12][12];
8. void bfs(int i,int j){
9.  int top,tail,x,y,xx,yy;
10.   top=tail=0;
11.   memset(deq,0,sizeof(deq));
12.   deq[tail][0]=i;deq[tail][1]=j;tail++;
13.   while(tail>top){
14.     x=deq[top][0];y=deq[top][1];book[x][y]=true;
15.     for(int k=0;k<4;k++){
16.       xx=x+xy_[k][0];yy=y+xy_[k][1];
17.       if(xx>=1&&xx<=10&&yy>=1&&yy<=10&&map[xx][yy]==0&&!book[xx][yy]){
18.         deq[tail][0]=xx;deq[tail][1]=yy;tail++;book[xx][yy]=true;
19.       }
20.     }
21.     map[x][y]=1;top++;
22.   } 
23. }
24. int sun_(){
25.   int sum=0;
26.   for(int i=1;i<=10;i++)
27.     for(int j=1;j<=10;j++)
28.       if(map[i][j]==0&&!book[i][j]) sum++;
29.   return sum; 
30. }
31. int main(int argc, char *argv[])
32. {
33.   for(int i=1;i<=10;i++)
34.     for(int j=1;j<=10;j++)
35.       cin>>map[i][j];
36.   for(int i=1;i<=10;i++){
37.     if(map[1][i]==0)bfs(1,i);
38.     if(map[10][i]==0)bfs(10,i);
39.     if(map[i][1]==0)bfs(i,1);
40.     if(map[i][10]==0)bfs(i,10);
41.   }
42.   cout<<sun_()<<endl;
43.   return 0;
44. }


相关文章
LeetCode 223. 矩形面积
LeetCode 223. 矩形面积
66 0
wustojc1007求圆的面积和周长
wustojc1007求圆的面积和周长
49 0
|
6月前
leetcode-695:岛屿的最大面积
leetcode-695:岛屿的最大面积
54 0
三角形的面积-叉积
三角形的面积-叉积
67 0
|
算法
计算三角形的周长和面积
计算三角形的周长和面积
79 0
|
算法 Python
计算三角形的面积
计算三角形的面积
134 0
|
算法 Python
计算圆的面积
计算圆的面积
92 0
|
Serverless C++
C++/PTA CCircle圆类求圆环面积
定义一个名为CCircle的圆类,要求: 1.其属性数据为圆的半径radius; 2.定义构造函数; 3.成员函数area()计算圆的面积。 4.编写主函数计算一个内径和外径分别为a和b的圆环的面积,其中a和b由键盘输入,π取值为3.14159。
237 0
leetcode 695 岛屿的最大面积
leetcode 695 岛屿的最大面积
67 0
leetcode 695 岛屿的最大面积