ATCODER ABC 450 C
因为想不到或者不知道这道题的算法是什么,我想枚举模拟,但是在枚举模拟的过程中,我发现,我模拟从一个串的开始到串的末尾,这个过程很难模拟出来,所以暴力做法也写不出来,最后,看官方题解以及问ai,才知道这道题要用BFS(广度优先搜索)BFS:为什么要用BFS这道题是一个连通块问题,等效于要求我们统计“不漏水”的水坑,bfs的核心思想就是从一个点开始,向四周扩散,所以这道题的要求很契合bfs具体思路用两个数组表示平移到上下左右用一个二维bool数组表示该格子是否被扫描过循环每个字符假如一个字符没被扫描过,并且是.,以它为头建造一个队列(存储pair),记住存入队列就马上标记(原因见下文).设定一个bool数来表示连通串是否有点在边界bfs寻找:首先判断当前的坐标是否在边界内,即使在边界,还是要把邻居找完,不然之后还是循环到邻居还是要再找,可能导致重复找邻居,效率低下.找邻居(注意判断坐标边界条件,将邻居push进队列,进队列就标记)进队列就标记的原因:如下例子所示:1. 2×2 地图的“包抄”过程假设四个点全是水坑.A—— 起点B—— A 的下方邻居C—— A 的右方邻居D——B 的右方邻居同时也是 C 的下方邻居第一步处理 AA 看向四周发现了 B 和 C 。A 把 B 和 C 都丢进队列排队。此时队列[B, C]。注意此时 B 和 C 还没出队所以还没被贴上cg1的标签。第二步轮到 B 出队B 贴上标签cg[1][0]1。B 看向它的邻居发现了D。B 发现 D 还没贴标签于是把D 丢进队列。此时队列[C, D]。注意此时 D 已经在排队了但因为还没出队它的标签cg[1][1]依然是 0。第三步轮到 C 出队C 贴上标签cg[0][1]1。C 看向它的邻居也发现了D关键冲突点C 检查cg[1][1]发现竟然是0因为 D 还在后面排队呢没轮到它贴标签。C 以为 D 是个没人管的“新发现”于是又把 D 丢进了一次队列。最终队列[D, D]。2. 为什么这很可怕虽然 和 互不相识但它们像两个不沟通的部门同时看中了同一个员工D。在一个大迷宫里任何一个空格子比如 通常都有 4 个邻居。这意味着如果你不在入队那一刻就贴上标签这个格子可能会被它的上下左右邻居每人举报一次。在你的while循环里原本这个格子只需要处理 1 次现在却要处理 4 次。而这 4 次处理又会引发出更多的重复……这种冗余会像病毒一样在你的队列里疯狂繁殖。假如队列空后bool数不变,那么count代码:#include bits/stdc.h using i64 long long; int dx[] {1, -1, 0, 0}; int dy[] {0, 0, 1, -1}; void solve(){ int h, w; std::cin h w; std::vectorstd::string s(h); for(int i 0; i h; i){ std::cin s[i]; } std::vectorstd::vectorbool cg(h,std::vectorbool (w,0)); int count 0; for(int i 0; i h; i){ for(int j 0; j w; j){ if(s[i][j] . cg[i][j] 0){ std::queuestd::pairint, int q; q.push({i,j}); cg[i][j] 1; bool is 1; while(!q.empty()){ auto[x,y] q.front(); q.pop(); int nx, ny; if(x 0 || x h - 1 || y 0 || y w - 1){ is 0; } for(int k 0 ; k 4; k){ nx x dx[k]; ny y dy[k]; if(nx 0 nx h ny 0 ny w){ if(s[nx][ny] . cg[nx][ny] 0){ q.push({nx,ny}); cg[nx][ny] 1; } } } } if(is 1){ count; } } } } std::cout count; } int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); solve(); return 0; }

相关新闻

破界三维重构·虚实同源透明|黎阳之光化工全场景穿透式智慧管控方案

破界三维重构·虚实同源透明|黎阳之光化工全场景穿透式智慧管控方案

化工园区属于高危密集型生产场景,装置堆叠复杂、管廊管网纵横交错、危化介质流转频繁、密闭空间众多,安全生产始终是园区运营的核心底线。传统化工管理依赖二维图纸、定点监控与人工巡检,存在空间结构模糊、隐蔽盲区量大、数据与实景脱节、隐…

2026/6/30 2:43:11阅读更多 →
一、项目架构

一、项目架构

microservice-demo/ ├── service-gateway/ # API网关 (8080) ├── service-user/ # 用户服务 (8081) ├── service-order/ # 订单服务 (8082) └── pom.xml # 父POM 回到顶部 二、依赖版本管理 <properties><j…

2026/6/30 2:43:11阅读更多 →
广告已经带来流量,却迟迟拉不动订单?这条 Amazon 烧烤烤网 Listing 其实输在“像配件的页面”,而不是产品本身

广告已经带来流量,却迟迟拉不动订单?这条 Amazon 烧烤烤网 Listing 其实输在“像配件的页面”,而不是产品本身

这是一位在 Amazon US 做烧烤配件的卖家的真实案例。团队在投放烧烤烤网&#xff08;烧烤篦子&#xff09;时发现&#xff0c;广告能稳定把人带到页面&#xff0c;但成交始终不上不下&#xff0c;同类头部竞品却卖得很轻松。运营第一反应是&#xff1a;是不是出价不够 aggressi…

2026/6/30 2:43:11阅读更多 →
区块链技术中的共识机制智能合约与跨链交互

区块链技术中的共识机制智能合约与跨链交互

区块链技术中的共识机制、智能合约与跨链交互 区块链技术凭借其去中心化、透明性和不可篡改的特性&#xff0c;正在重塑金融、供应链、物联网等多个领域。其中&#xff0c;共识机制是区块链网络稳定运行的核心&#xff0c;智能合约实现了自动化业务逻辑&#xff0c;而跨链交互…

2026/6/30 3:38:14阅读更多 →
Java Web Web电子产品销售系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web Web电子产品销售系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

&#x1f4a1;实话实说&#xff1a;CSDN上做毕设辅导的都是专业技术服务&#xff0c;大家都要生活&#xff0c;这个很正常。我和其他人不同的是&#xff0c;我有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。博主介绍&#xff1a;&#x…

2026/6/30 3:38:14阅读更多 →
Excel2

Excel2

笔记&#xff1a;先选中录入区域&#xff0c;然后录入内容。当Tab键向右移动至选择区域边缘时&#xff0c;会自动跳到区域下一行的第一个单元格。文件——选项——编辑——勾选自动设置小数点&#xff0c;输入数据时&#xff0c;可自动添加小数点。&#xff08;不使用此功能时&…

2026/6/30 3:38:14阅读更多 →
Amlogic电视盒安装Debian Linux系统:2025年开源服务器改造指南

Amlogic电视盒安装Debian Linux系统:2025年开源服务器改造指南

Amlogic电视盒安装Debian Linux系统&#xff1a;2025年开源服务器改造指南 【免费下载链接】debian-on-amlogic Minimal Debian and Ubuntu images for Amlogic based Android TV-boxes with mainline Linux LTS kernel. 项目地址: https://gitcode.com/gh_mirrors/de/debian…

2026/6/30 3:38:14阅读更多 →
深入解析TI MSPM0 LEA加速器:MAC、FIR与极值搜索指令实战

深入解析TI MSPM0 LEA加速器:MAC、FIR与极值搜索指令实战

1. 项目概述&#xff1a;为什么我们需要一个专门的硬件加速器&#xff1f;在嵌入式信号处理的世界里&#xff0c;尤其是当你面对的是电池供电的物联网设备、便携式医疗仪器或者高采样率的传感器节点时&#xff0c;你每天都在和两个“魔鬼”做斗争&#xff1a;实时性和功耗。主控…

2026/6/30 3:38:14阅读更多 →
民宿家具最好用老榆木,山西本土工厂专业定制

民宿家具最好用老榆木,山西本土工厂专业定制

现如今很多开民宿的老板&#xff0c;选购家具一味追求款式好看&#xff0c;只图当下价格便宜。大批量采购板式成品家具&#xff0c;用上两三年就出现开裂、起皮、受潮变形。 真正做长久经营的民宿&#xff0c;更看重材质。天然老榆木经过多年风吹日晒&#xff0c;木质稳定性极强…

2026/6/30 3:33:14阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月&#xff0c;Boris Cherny 公开宣布自己卸载了 IDE。一时间&#xff0c;Vibe Coding 成了全行业最热的话题。6个月后&#xff0c;当我们回过头来拉一份真实账本&#xff0c;发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/29 3:27:55阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言&#xff1a;审计结束三个月了&#xff0c;审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间&#xff0c;内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中&#xff0c;审计…

2026/6/29 2:19:08阅读更多 →
为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler&#xff1a;技术原理与实战指南 【免费下载链接】Destiny-2-Solo-Enabler Repo containing the C# and XAML code for the D2SE program. Included is also the dependency for the program, and image asset. 项目地址: https://gitcode…

2026/6/30 0:02:58阅读更多 →
第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

1. PowerPoint 2010基础操作全攻略 刚接触PowerPoint 2010时&#xff0c;很多人会被它复杂的界面吓到。其实只要掌握几个核心区域&#xff0c;就能快速上手。我最开始用PPT时&#xff0c;经常找不到功能按钮在哪&#xff0c;后来发现主要操作都集中在顶部功能区。 工作窗口主要…

2026/6/30 0:02:58阅读更多 →
XGBoost超参数实战:从理论到调优策略

XGBoost超参数实战:从理论到调优策略

1. XGBoost超参数基础认知 第一次接触XGBoost时&#xff0c;我被它那密密麻麻的参数列表吓到了。这感觉就像面对一架波音747的驾驶舱——每个按钮都可能有神奇的效果&#xff0c;但按错了就可能坠机。经过多年实战&#xff0c;我发现其实掌握十几个核心参数就能解决90%的问题。…

2026/6/30 0:02:59阅读更多 →