【题目描述】

编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在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

【源程序】

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 11
#define MOD 123
#define E 1e-6
using namespace std;
int a[N][N];
int vis[N][N];
int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int cnt=0;
struct node{int x;int y;
}q[200];
void bfs(int x0,int y0)
{a[x0][y0]=1;vis[x0][y0]=1;int head=1,tail=1;q[tail].x=x0;q[tail].y=y0;tail++;while(head<tail){int x=q[head].x;int y=q[head].y;for(int i=0;i<4;i++){int nx=x+dir[i][0];int ny=y+dir[i][1];if(1<=nx&&nx<=10&&1<=ny&&ny<=10&&a[nx][ny]==0&&vis[nx][ny]==0){vis[nx][ny]=1;a[nx][ny]=1;q[tail].x=nx;q[tail].y=ny;tail++;}}head++;}
}
void bfs_cnt(int x0,int y0)
{vis[x0][y0]=1;cnt++;int head=1,tail=1;q[tail].x=x0;q[tail].y=y0;tail++;while(head<tail){int x=q[head].x;int y=q[head].y;for(int i=0;i<4;i++){int nx=x+dir[i][0];int ny=y+dir[i][1];if(1<=nx&&nx<=10&&1<=ny&&ny<=10&&a[nx][ny]==0&&vis[nx][ny]==0){vis[nx][ny]=1;q[tail].x=nx;q[tail].y=ny;tail++;cnt++;}}head++;}
}
int main()
{for(int i=1;i<=10;i++)for(int j=1;j<=10;j++)cin>>a[i][j];for(int j=1;j<=10;j++)if(a[1][j]==0)bfs(1,j);for(int j=1;j<=10;j++)if(a[10][j]==0)bfs(10,j);for(int i=1;i<=10;i++)if(a[1][i]==0)bfs(1,i);for(int i=1;i<=10;i++)if(a[10][i]==0)bfs(10,i);for(int i=1;i<=10;i++)for(int j=1;j<=10;j++)if(a[i][j]==0&&vis[i][j]==0)bfs_cnt(i,j);cout<<cnt<<endl;return 0;
}

围成面积(信息学奥赛一本通-T1359)相关推荐

  1. 信息学奥赛一本通 1359:围成面积

    [题目链接] ybt 1359:围成面积 [题目考点] 1. 搜索:连通块问题 [解题思路] 解法1:遍历外圈 遍历整个地图的外圈(第1行.第1列.第10行,第10列),从外圈所有标记为0的位置开始搜 ...

  2. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 信息学奥赛一本通在线提交地址

    信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...

  5. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

  6. 【例8】合唱队形(《信息学奥赛一本通第五版》)

    /* [例8]合唱队形(<信息学奥赛一本通第五版>) http://ybt.ssoier.cn:8088/problem_show.php?pid=1264 [问题描述] N位同学站成一排 ...

  7. 信息学奥赛一本通(2032:【例4.18】分解质因数)

    2032:[例4.18]分解质因数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 582     通过数: 376 [题目描述] 把一个合数分解成若干个质因数乘积 ...

  8. 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例

    题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...

  9. 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制

    [题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...

最新文章

  1. 阿里配管专家解读:如何最优成本搭建非标准的iOS构建集群
  2. 为什么连续申请的两个 int 型变量的地址差值为 12 而不是 4 ?
  3. php的socket通信
  4. OpenGL伽玛校正测试
  5. 02基于注解开发SpringMVC项目(jar包,异步,request,参数传递,多选的接收,Model传参,map传参,model传参,ajax,重定向,时间日期转换)
  6. HDU - 4565 So Easy!(共轭构造+推公式+矩阵快速幂)
  7. 适合做手机铃声的81首歌_“想下载这首歌作为你的手机铃声吗?”
  8. 玩转算法之面试第十章-贪心算法
  9. 英雄互娱:中止代理的《NBA LIVE》在中国大陆地区所有推广活动
  10. 架构解密从分布式到微服务:微服务架构到底是什么?
  11. 暖冬福利放送,送3本技术好书
  12. c++访问私有(private)成员变量的常用方法
  13. c++11 追踪返回类型
  14. 第十五周项目2 - 大数据集上排序算法性能的体验
  15. 最后1天,购票渠道即将关闭!Unite 2018开发者大会全日程公布
  16. day07 Java链表(环、快慢指针)
  17. 打造完美自用Ubuntu 18.04 开发环境,解决qq微信网易云
  18. Nginx的location匹配与rewrite重写跳转
  19. sas数据集怎么导出_将多个SAS数据集转换为CSV文件
  20. java毕业设计厨房管理系统Mybatis+系统+数据库+调试部署

热门文章

  1. 数据大牛都在啃的10本书
  2. C++20 要来了!
  3. 北大教授郑也夫斗胆谈了7个天大的问题,每个都非常狠,也很现实
  4. python twisted教程_Python Twisted系列教程1:Twisted理论基础
  5. 图像sobel梯度详细计算过程_视频处理之Sobel【附源码】
  6. 我向面试官讲解了单例模式,他对我竖起了大拇指
  7. 侵犯著作权法定赔偿额上限提高至500万元
  8. EasyUi之datagrid常见使用
  9. JEECG 引领J2EE新开发模式插件式开发 - 公开课2013-12-12
  10. 数据结构基础(1) --Swap Bubble-Sort Select-Sort