当前位置: 首页 > news >正文

信息学奥赛一本通1359:围成面积 ← Flood fill

【题目来源】
http://ybt.ssoier.cn:8088/problem_show.php?pid=1359

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

一本通1359

【输入格式】
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

【数据范围】
10×10 的二维数组

【算法分析】
● 扩展边界不是 “可有可无” 的技巧,而是将 “多起点 BFS” 转化为 “单起点 BFS” 的通用方法。
● 扩展边界的本质是用 “空间换逻辑简化”
● 扩展边界的真正价值,是应对原始边界 0 被 1 分割成多个不连通区域的通用场景 —— 通过虚拟边界的 “全 0 连通性”,把 “遍历所有物理边界点” 的复杂操作,简化为 “从虚拟起点 (0,0) 一次 BFS”,这是解决 “边界连通性” 问题的经典技巧。

【算法代码】

#include<bits/stdc++.h>
using namespace std;typedef pair<int,int> PII;
const int N=15;
int mp[N][N];
int dx[]= {1,0,-1,0};
int dy[]= {0,1,0,-1};
int n,ans;void bfs(int x, int y) {queue<PII> q;mp[x][y]=7; //integer not int the graphq.push({x,y});while(!q.empty()) {PII t=q.front();q.pop();for(int i=0; i<4; i++) {int tx=t.first+dx[i];int ty=t.second+dy[i];if(tx>=0 && tx<=n+1 && ty>=0 && ty<=n+1 && mp[tx][ty]==0) {mp[tx][ty]=7;q.push({tx,ty});}}}
}int main() {n=10;for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {cin>>mp[i][j];}}bfs(0,0);for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {if(mp[i][j]==0) ans++;}}cout<<ans<<endl;return 0;
}/*
in:
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 0out:
15
*/





【参考文献】
https://blog.csdn.net/pheatonhb/article/details/136652647





 

http://www.jsqmd.com/news/437022/

相关文章:

  • 考虑柔性负荷的综合能源系统低碳经济调度探索
  • 明天就要开学。
  • 快板厂pcb4层板打样哪家快又稳
  • 2026年3月武汉装修一条龙公司最新推荐,聚焦全屋定制与全案交付能力 - 品牌鉴赏师
  • 在 React 中,什么情况下需要用 useCallback 和 useMemo?它们的区别是什么?
  • 3月4日(121-123题)
  • 十二层PCB选型指南:2026高速电路板厂商排名
  • PCB四层板哪家好?5大厂商综合评测排名
  • 无线数采网关有哪些功能特点
  • 某能源企业AI转型:提示工程架构师介入后,设备故障率降18%
  • 风机润滑数据采集物联网解决方案
  • 2026最新 | 3款离线免费pdf转word工具软件推荐,教你选对不踩坑
  • 云原生网关 Ingress-Nginx 链路追踪实战:OpenTelemetry 采集与观测云集成方案
  • ElasticSearch核心原理详解
  • 基于 YOLO26 的电瓶车自行车智能检测(中英文双版) | 附完整源码与效果演示
  • XTDrone平台下创建自己的world文件并运行
  • 基于YOLO26的5类常见水果检测系统(中英文双版) | 附完整源码与效果演示
  • 高量程电导率TDS盐度测定仪
  • 模块化与组件化:90%的前端开发者都没搞懂的本质区别
  • 人工智能之数字生命-本能动作体系规范(任务/方法/本能方法函数)
  • 书匠策AI:解锁课程论文高效写作的“智慧密钥”
  • 工业防爆小型气象站
  • [特殊字符]书匠策AI:解锁课程论文新境界,让学术写作如行云流水![特殊字符]
  • 自然语言处理 —— 语言资源
  • 智能考试系统核心模块回归测试:从基础数据到业务闭环的深度验证
  • 逻辑回归实战:从原理到不平衡数据优化(含欠拟合/过拟合诊断与召回率提升) - 教程
  • 自然语言处理 —— 简介
  • 止痒去屑洗发水怎么选?2026年热门品牌大盘点,去油去屑洗发水/去屑洗发水/止痒去屑洗发水,止痒去屑洗发水产品排行榜单 - 品牌推荐师
  • 书匠策AI:解锁课程论文新姿势,让学术创作如虎添翼!
  • 用Matlab实现基于LBP的面部表情识别