洛谷 P1162 填涂颜色 📅 发布时间:2026/7/4 2:32:38 👁️ 浏览次数: 洛谷 P1162 填涂颜色P1162 填涂颜色这个题一开始看着挺懵后来用 DFS一拆解发现核心逻辑其实超简单今天就把这个题的解题思路和代码分享给大家新手也能轻松看懂。先说说题目要求给一个 n×n 的方阵里面只有 0 和 11 代表围墙要求把所有被 1 包围的 0 改成 2而外围的 0 保持不变。比如一个 5×5 的方阵边缘的 0 没被包围中间被 1 围起来的 0 要标成 2。咋解决呢核心思路就一个先把 “外面” 的 0 找出来标记剩下的 0 就是被包围的。因为直接找被包围的 0 不好判断但找外围的 0 很容易 —— 从矩阵的边界比如 (0,0) 这个虚拟起点出发能走到的 0 都是 “外面” 的把这些 0 标记成 2最后再做一次替换标记成 2 的改回 0没被标记的 0 改成 21 保持不变。上代码亲测#include bits/stdc.h using namespace std; int a[35][35],dx[]{1,0,-1,0},dy[]{0,1,0,-1},n; void dfs(int x,int y){ for(int i0;i4;i){ a[x][y]2; int txxdx[i],tyydy[i]; if(tx0txn1ty0tyn1a[tx][ty]0)dfs(tx,ty); } } int main() { cinn; for(int i1;in;i){ for(int j1;jn;j){ cina[i][j]; } } dfs(0,0); for(int i1;in;i){ for(int j1;jn;j){ if(a[i][j]0)cout2 ; else if(a[i][j]2)cout0 ; else cout1 ; } coutendl; } return 0; }代码里的关键点很好理解数组开成 35×35 是因为 n 最大 30留一圈边界0 行、0 列、n1 行、n1 列方便从 (0,0) 开始搜索dx 和 dy 数组是上下左右四个方向DFS 的经典用法每次往四个方向走一步DFS 函数从 (0,0) 出发把能走到的 0 都标成 2—— 这些就是 “外围的 0”最后遍历矩阵的时候没被标 2 的 0被包围的输出 2标了 2 的 0外围的输出 01 照常输出。这个思路的妙处在于 “反向思考”不用纠结怎么判断 “被包围”而是先把不被包围的找出来剩下的自然就是目标。DFS 在这里就是用来 “遍历外围 0” 的工具递归的过程就是一步步把外围的 0 都标记完。新手写的时候注意两点一是数组边界要设到 n1别越界二是 DFS 里先标记当前点为 2再搜四个方向避免重复遍历。这个题是 DFS 入门的好题理解透了以后遇到类似的 “区域包围” 问题都能这么解。总结解题核心反向标记外围 0剩余 0 即为被包围的目标DFS 作用从矩阵边界 (0,0) 出发遍历并标记所有外围的 0最终处理标记为 2 的 0 改回 0未标记的 0 改成 21 保持不变。
Claude Skill 构建指南(中英文版)|附33页PDF文件下载 当所有人都在疯狂囤积“提示词大全”的时候,硅谷的玩家们已经开始给AI装上“外挂大脑”了。Claude的Skill(技能)不仅是长指令,它是Context Tools Instructions的终极结合体。以下为报告节选:......文│Anthropic本报… 2026/5/17 1:04:18
现在(提问于 2019 年)的中国和二十年前有哪些不同? 中国当前最大的真相就是二十年前最成功的一批人物性格正在退出历史舞台。 你是否发现,前些年时常将“风口”“运作”“资源整合”这类词挂在嘴边的人突然正在经历一次次失败、摔倒,他们坐在地上茫然无辜看不懂这个世界的样子,可怜也可笑。 这… 2026/7/3 16:37:09
利用 eProtein Discovery 无细胞蛋白表达系统加速高度无序转录因子发现 利用 eProtein Discovery 无细胞蛋白表达系统加速高度无序转录因子发现 注:下文出于保密考虑,已隐去蛋白名称及具体文献引用。 一、引言 转录因子(TFs)是调控多种细胞通路的关键蛋白,常被称为“主控调节因子”。其中&a… 2026/5/17 10:20:58
OpenCV视频实时目标跟踪算法实战指南 1. 项目概述:OpenCV视频实时目标跟踪实战在计算机视觉领域,实时目标跟踪一直是个既基础又关键的技术点。我最近用PythonOpenCV完整实现了一套多算法跟踪系统,实测在普通办公笔记本上能达到30fps的处理速度。不同于静态图像处理,视… 2026/7/4 2:31:34
大数据处理的五大关键技术及其应用 数据处理旨在从海量数据中提炼价值,核心在于预测性分析,通过可视化、模式识别和挖掘帮助决策。主要环节包括采集、预处理、存储管理、分析挖掘及展现应用。 采集技术:获取结构化、半结构化和非结构化数据,需突破分布式爬取、高速解… 2026/7/4 2:27:33
OpenCV图像处理入门:从读取到显示的实战技巧 1. OpenCV图像处理基础入门计算机视觉作为人工智能的重要分支,正在深刻改变着我们与数字世界交互的方式。而OpenCV作为最流行的开源计算机视觉库,其图像读取与显示功能是每位开发者必须掌握的基础技能。不同于简单的图片查看器,OpenCV提供了工… 2026/7/4 2:27:33
强化学习参数设置与优化实战指南 1. 强化学习参数设置的核心挑战在强化学习系统开发过程中,参数配置往往是最容易被低估却又最关键的一环。我见过太多项目因为参数设置不当而导致训练失败,即使算法本身非常优秀。参数就像强化学习系统的"隐形调节器",直接影响着智能… 2026/7/4 2:25:33
云服务器GPU训练深度学习模型实战指南 1. 为什么需要云服务器训练模型?训练深度学习模型对计算资源的需求往往超出个人电脑的承载能力。以常见的ResNet50模型为例,在ImageNet数据集上训练一轮(epoch)就需要处理128万张图片,使用单张RTX 3090显卡需要约30小时… 2026/7/4 2:25:33
AI全栈开发实战:前端开发者半小时构建完整应用 如果你是一名前端开发者,最近是否经常感到焦虑?一方面,前端技术栈日新月异,框架、工具链、构建配置让人应接不暇;另一方面,市场对“全栈能力”的要求越来越高,后端、数据库、部署运维的知识壁垒… 2026/7/4 2:23:33
STM32F745VG与MC6470 IMU的高性能姿态控制系统设计 1. MC6470与STM32F745VG的黄金组合解析在工业自动化和机器人控制领域,传感器与微控制器的协同工作能力直接决定了系统的响应速度和定位精度。MC6470作为一款6自由度惯性测量单元(6DOF IMU),与STM32F745VG这款基于ARM Cortex-M7内核的高性能微控制器组合&… 2026/7/4 0:00:28
Playwright自动化测试实战:从零搭建现代Web测试框架 1. 项目概述:为什么是 Playwright?如果你正在为现代 Web 应用的自动化测试头疼,尤其是面对那些充斥着动态加载、复杂交互的单页应用(SPA),那么 Playwright 的出现,很可能就是你的解药。我接触过… 2026/7/4 0:00:28
终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 【免费下载链接】jsxbin-to-jsx-converter JSXBin to JSX Converter written in C# 项目地址: https://gitcode.com/gh_mirrors/js/jsxbin-to-jsx-converter 你是否曾经面对过Adobe产品的JSXBIN文件感到… 2026/7/4 0:02:28