蓝桥杯突击第一天:简单模拟+set/map,三小时拿稳基础分
距离比赛没几天了才开始翻开题单的人不在少数。“蓝桥杯抱佛脚第一天”这个标题说白了就是临时突击。可突击也得有章法第一天最该干的事情不是硬啃动态规划也不是去背那些根本用不上的高级数据结构而是把三类东西练到肌肉记忆简单模拟、set 和 map。简单模拟是蓝桥杯省赛里最稳定、最容易拿分的题型几乎年年有set 和 map 则是处理去重、统计、存在性判断的神器配合好它们一道模拟题能从“暴力超时”变成“稳稳过题”。这篇文章不是系统教程是一份可以直接照着走的“第一天行动方案”C 选手直接抄作业Python 选手看思路同样适用。很多临时抱佛脚的人容易犯一个错误一上来就打开题单从第一题开始刷刷到不会的就看题解看完觉得自己会了合上编辑器又啥都不记得。第一天如果这么干效率约等于零。真正高效的突击方式是选准考点、集中突破、形成模板。本文围绕“简单模拟 set map”展开从为什么选它们讲起到具体怎么用、有哪些坑最后给出一份三小时实操路线帮你把第一天花在刀刃上。1. 第一天锁定这三板斧的原因1.1 蓝桥杯省赛题型的得分梯度先说结论蓝桥杯省赛的题目难度是分层的前几题通常不需要高端算法。近几年的出题风格中填空和简单编程大题里经常出现“按要求模拟过程”的题目比如日期计算、矩阵转圈、字符串替换、投票计数、排队模拟等。这类题没有复杂的数学推导也没有高级算法套路只要你把题目描述的流程老老实实用代码走一遍就能满分通过。换句话说简单模拟是全场性价比最高的题型。相比之下动态规划、图论、数论这些内容就算你花一整天去啃大概率还是做不出来难题。但把简单模拟练熟至少能稳定拿到 23 道题的分数。对省赛拿奖来说这几道题的分数往往就是关键。set 和 map 则几乎是模拟题的“最佳搭档”去重看 set计数和映射看 map。很多模拟题的核心需求就是“查重”“统计”“快速找到某个值是否存在”正好是这两个容器的看家本领。1.2 set 和 map 的本质把查找从 O(n) 降到 O(log n)很多新手对 set 和 map 的理解停留在“好像能去重”“好像能存键值对”但不知道它们为什么比数组好用。数组查找一个元素需要从头到尾遍历最坏情况是 O(n)set 和 map 底层是红黑树在 C STL 中元素插入时自动按序排列查找时利用二分思想复杂度只有 O(log n)。题目如果给的数据量到 10 万以上O(n) 的查找大概率超时而 O(log n) 完全无压力。打个比方你要在一大堆纸质档案里找某个人的记录。数组就像档案随手乱扔只能一本本翻set 和 map 就像按姓氏笔画排好序的索引柜直接顺着索引定位。这种“自带排序 快速查找”的特性让 set/map 成为模拟题中“需要判断某个状态有没有出现过”场景的默认选择。选 set 还是 map判断标准也很简单如果只关心“某个元素在不在集合里”用 set如果还需要“每个元素对应某个值”用 map。比如说统计字符串出现次数就需要 mapstring, int但如果只是过滤重复的 IDset 就够了。2. 简单模拟题的拆解与实操——以“签到统计”为例2.1 模拟题的识别特征与通用解法模拟题通常长这样题干给出一大段自然语言描述让你模拟一个现实场景比如“有 n 个操作每个操作用户输入一个指令系统执行相应动作”。识别方法也很直接看到“依次处理”“按规则执行”“模拟 XXX 过程”这类表述基本就是模拟题。解模拟题的核心在于“翻译”把你读到的自然语言流程拆解成清晰的步骤再翻译成变量、循环和条件判断。这个过程中最重要的一步是设计“状态变量”——你得想清楚用什么数据结构来描述当前局面。比如模拟排队用队列模拟棋盘用二维数组模拟报名系统往往就要用 map 和 set。状态设计对了后面代码就顺了状态设计错了写一半会发现逻辑打结回头重写更浪费时间。通用解法套路可以总结为四步阅读题目画出流程输入什么、每步做什么、输出什么。确定状态表示用哪几个变量/容器来记录中间结果。按流程编码写循环处理每个操作或每条数据。对照样例检查输出再造边界数据自查。2.2 一个 20 分钟搞定的综合示例活动签到统计我拿一个常考的签到统计题改造成教学版本题目是这样的给定 n 条签到记录每条记录包含“日期”和“参赛者编号”日期格式为“YYYY-MM-DD”编号是纯数字字符串。要求统计所有参与人数中哪些参赛者每天都到了以及每一天分别有多少人到场。这个题如果不用 map 和 set新手很容易写出一堆嵌套循环数据量大一点就超时。用 set 和 map 就非常清爽。先看第一问“哪些人每天都到了”需要先统计一共有几天然后统计每个人的到场天数。用一个 set 存所有日期得到一个总天数 totalDays再用一个 mapstring, set 存储“日期 - 当天到场的选手集合”这样每个人每天的到场情况也被自然记录下来最后用另一个 mapstring, int 统计每个选手的到场天数。代码大概是这样的#include bits/stdc.h using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin n; setstring allDays; mapstring, setstring dayToPeople; mapstring, int personCount; for (int i 0; i n; i) { string date, id; cin date id; allDays.insert(date); // 这里利用 set 本身去重同一个日期同一个人只算一次 if (dayToPeople[date].find(id) dayToPeople[date].end()) { dayToPeople[date].insert(id); personCount[id]; } } int totalDays (int)allDays.size(); cout 每天到场人数: endl; for (auto p : dayToPeople) { cout p.first : p.second.size() endl; } cout 全程满勤选手: endl; for (auto p : personCount) { if (p.second totalDays) { cout p.first endl; } } return 0; }注意这行关键的写法dayToPeople[date].find(id)它利用“当天到场集合”判断这个人在当天是否已经出现过避免同一天重复计数。这也是模拟题里很常见的需求既要统计次数又要按天去重。代码里用mapstring, setstring完成双重去重思路清晰性能也比暴力循环好很多。2.3 模拟题最坑的四个地方模拟题看起来不难但丢分往往丢在细节上。第一是初始化误区。多组测试数据的题目如果容器和计数器不清空上一组数据残留会干扰结果。最好的做法是在处理每组数据前重新定义容器或者显式.clear()。第二是边界值。比如循环到n还是n-1下标从 0 还是从 1 开始日期有没有闰年、大小月。很多选手在本地样例通过一提交就错原因就是样例没覆盖边界。造数据时必须考虑第一条记录、最后一条记录、重复记录、极端值。第三是输入格式问题。有些题目用getline()读取整行如果之前用cin输入缓冲区里还留着换行符需要getchar()或用cin.ignore()处理掉。第四是输出格式。蓝桥杯对输出格式要求严格多一个空格、少一个换行都可能扣分。通常建议把要输出的内容拼接好后统一输出避免遗漏。3. set 的核心用法与实战避坑3.1 set 的增删查改与存在性判断set 的使用其实就几个接口关键是记熟。插入用insert()删除用erase()查找用find()或count()。其中count()返回 0 或 1表示元素是否存在写起来非常直观。很多蓝桥杯题目会要求“如果编号已存在则不重复处理”这时候直接判断s.count(id)就行。setint st; st.insert(5); st.insert(3); st.insert(8); // 自动排序后遍历输出是 3 5 8 for (int x : st) { cout x ; } cout endl; if (st.count(5)) { cout 5 存在 endl; } // 删除 st.erase(5);另外两个冷门但好用的接口是lower_bound()和upper_bound()在需要找“比某个数大的最小元素”时很有用。比如题目里说“分配最小编号且不小于 x 的座位”用auto it st.lower_bound(x);就能快速定位不用遍历整个集合。这个用法在贪心类题目里也常出现蓝桥杯偶尔会串着考。3.2 去重场景从排序加 unique 到直接 set以前很多人去重喜欢用sortunique这套操作在数组上确实没问题但如果数据是动态插入的或者需要边插入边判断就非常别扭。set 天然支持动态去重插重复元素不会报错只是不会增加元素数量。比如读入一串句子中的单词想统计有多少个不同的单词直接全部insert进 set最后size()就是答案几行代码搞定。这种“动态去重 自动排序”的组合让很多字符串处理题瞬间变简单。3.3 set 的隐藏坑与自定义排序set 有三个容易踩的坑我挨个说。一是迭代器失效。很多老教材说删除元素后迭代器失效于是写s.erase(it); it;这在 C11 之前是 UB现在erase返回下一个迭代器建议写成it s.erase(it);最安全。二是结构体去重需要自己定义排序规则。set 默认按排序如果存自定义结构体必须重载否则编译报错。比如存一个坐标点{x, y}你想按 x 优先排序就要写struct Point { int x, y; bool operator(const Point other) const { if (x ! other.x) return x other.x; return y other.y; } };三是清空。某些题目里 set 会存储上一轮的临时数据如果忘了clear()下一轮会带着旧数据一起判断结果全错。这个问题在“多组输入”的题目里简直是送命题。提示调试时如果发现 set 输出顺序和预期不符先检查是不是自定义结构体没重载或者重载逻辑写反了。set 的排序是你自己定义的写错了所有逻辑都跟着错。4. map 的核心用法与计数排序技巧4.1 map 的常用操作与 operator[] 的陷阱map 最常用的操作是insert、count、erase和[]。其中[]是最爽也最危险的接口。爽在写计数代码时一行搞定mp[key];如果 key 不存在会自动创建默认值再自增。危险在于你可能不小心创建了不存在的键比如if (mp[abc] 0)这个判断会把 “abc” 插入 map让 map 的 size 变大。这在判断“某个键是否存在”时会产生逻辑错误正确写法是if (mp.count(abc) 0)。遍历 map 也很常用mapstring, int mp; mp[Alice] 3; mp[Bob] 5; for (auto kv : mp) { cout kv.first : kv.second endl; } // 按 key 升序输出map 内部按 key 自动排序很多题目里“按字典序输出统计结果”的需求直接省了排序环节。4.2 map 和 vector 结合实现“按键值排序”map 本身按 key 排序但有时题目要求按 value次数、分数排序。这需要把 map 内容导出到 vector 中再自定义排序。比如统计每个单词出现次数后输出出现次数最多的前几个单词。可以先遍历 map 塞进vectorpairstring, int再用sort配合比较函数按次数降序、次数相同按字典序升序。这个手法在模拟题里非常常见。注意排序比较函数的写法尤其注意pair的默认排序是先按 first 再按 second如果直接把 pair 塞进去是按 key 排的不是按 value 排所以必须自己写比较逻辑。4.3 unordered_map 和 map该选谁C11 提供了unordered_map底层是哈希表查找平均 O(1)理论上更快。但蓝桥杯我建议优先用map。原因有三第一map 自动有序有些题需要按序输出第二unordered_map在极端构造的数据下会发生哈希冲突退化最坏情况 O(n)在一些卡常数的题目里会被针对性卡爆第三map 的可预测性强调试起来心智负担小。只有在题量非常大、内存紧张、且完全不关心顺序时才考虑unordered_map。用map稳妥不会在选择题型上翻车。5. 三天抱佛脚的第一天三小时行动路线5.1 三小时怎么分配如果今天只有三小时可以参考下面的时间表来安排既不焦虑也不浪费。第一个小时过基础语法和容器 API。打开编辑器把 set 和 map 的基本操作手写一遍包括插入、查找、删除、遍历。不要求背下来但要做到“看到单词就知道是干嘛的”比如insert、count、erase、find。同时翻一翻自己之前写的代码模板检查头文件是否齐全编译环境是否正常。第二个小时做 3 道“简单模拟 set/map”组合题。第一道选最简单的签到型题目熟悉基本思路第二道选带“去重 计数”的题目体会 set 和 map 的配合第三道稍微加码涉及排序输出或边界条件比如多组输入。每道题做完不要急着下一道花 5 分钟总结一下“这题考了我什么哪个操作卡住了”。第三个小时整理易错点和个人模板。把自己在今天踩过的坑写在一张纸上比如“忘了清空”“输出多了空格”“日期解析漏了月份天数”。再整理一个自己的模板代码包括快读、容器操作遍历、排序比较函数的写法。这个模板在比赛当天可以直接复制修改节省大量时间。5.2 现场调试技巧和自查清单比赛现场没有 debugger 的时候提交前必须完成一轮自查。我习惯按这个顺序来重读题目要求和输出格式确认类型、换行。造 3 组额外测试数据最小数据n1、重复数据、边界值数据。重点检查所有容器是否在每组输入前已清空。检查所有变量类型是否够用尤其注意 int 是否溢出。检查循环边界和下标范围。将cerr调试输出注释掉或确保最终交的版本里没有多余输出。现场还有一个技巧用freopen或直接复制测试数据到终端确保输入读取符合预期。但注意提交时这些重定向语句必须注释掉否则在线评测系统读不到数据直接报错。5.3 从“过样例”到“过题”的思维转换很多人样例过了就以为稳了实际上样例只是给你一个最基本的方向。我在实际刷题中吃过太多次亏样例输出对一提交就错最后发现是“多组输入”没处理干净或者有一个隐藏条件没满足。真正靠谱的做法是把样例通过当成“代码能跑”的信号而不是“题目正确”的证明。接下来一定要自己造边界数据只有一条记录、所有记录都重复、字符串大小写混杂、空集合输出。这些边界想一遍能拦截掉大部分隐藏错误。6. 常见问题速查与独家避坑心得6.1 set/map 相关的编译与运行错误编译错误最常见的有三种头文件不全比如用了set没写#include set或者图省事写了万能头#include bits/stdc.h但本地编译环境不支持结构体作为 set 或 map 的 key 时没重载operator以及迭代器类型写错比如mapstring, int::iterator误写成const_iterator在遍历时无法修改 value。运行时报错主要集中在迭代器失效和空容器访问。删除元素时一定要用返回值更新迭代器。访问空 set 的begin()会导致未定义行为统计前先判断非空。提示比赛前务必确认自己熟悉的编译命令和编辑器快捷键比如注释快捷键、格式化快捷键。这些都是现场看不见的“真功夫”能帮你省下大量时间。6.2 逻辑正确但输出不对的常见原因这类问题最让人崩溃因为代码能编译样例也对就是提交错。我总结出几个高频原因第一字符串比较没统一大小写题目说忽略大小写结果你直接第二输入读取方式问题比如一行数据里可能有多个空格直接用cin读字符串会漏掉空格部分第三用int存日期和编号但编号可能有前导零比如 “001” 和 “1” 被当成同一个数第四多组数据之间没有换行分隔输出交错在一起。这些问题的共同根源是“以为自己理解了题意”。破解方法是每道题读完用一句话复述题目要求再反问自己三个问题——输入到底有几行输出是单组还是多组去重依据是什么6.3 超时问题的排查方向超时不一定是算法太慢也可能只是常数太大。先检查有没有不必要的重复计算比如在循环里反复调用mp[key]每次[]都可能触发查找正确做法是把查找结果存到局部引用。再检查有没有复制大对象比如for (auto kv : mp)会复制整个 pair改成for (auto kv : mp)能省不少时间。第三检查嵌套循环如果内层循环里有set.count()看起来每层 O(log n)但总体计算量可能超了可以尝试改用一层循环边读边算。如果确实算法复杂度高再考虑换数据结构或剪枝。但不能动不动就上各种冷门技巧简单题用暴力加 set/map 通常就够用。6.4 心态和策略上的“抱佛脚”心得临时抱佛脚最怕的是东一榔头西一棒槌。第一天把模拟、set、map 这三样练透已经比大多数人强了。第二天和第三天再练排序、字符串、二分这些就能形成一个完整的基础体系。记住一个原则宁可一道题反复做三遍也不要十道题每道只看一遍。重复做经典题能让你形成条件反射考场上一看到“去重”“统计”“地图映射”这几个词手就自动开始写set和map。我辅导过的某位选手去年比赛前三天开始突击就靠这个方法省赛拿到了一等奖——关键在于把有限时间花在“确定性高”的知识点上。我个人在实际操作中还有一个独家习惯把 set 和 map 的手写小抄贴在编辑器旁边。不是抄代码而是抄“什么时候用 set什么时候用 map什么时候用 sort”这三句话。别看简单考场紧张的时候这种决策指引比任何高级算法都管用。今天是第一天把这份基础打牢明天再看到复杂题你也知道从哪儿下手了。

相关新闻

AutoIt脚本工具详解:实现Windows自动化与GUI测试

AutoIt脚本工具详解:实现Windows自动化与GUI测试

简介:这套 AutoIt v3.3.6.1 绿色汉化特别版是一份面向自动化脚本新手与运维人员的完整工具包。AutoIt 基于 BASIC 风格语法,能在 Windows 图形界面下模拟击键、鼠标移动和窗口/控件操作,适合批量配置 PC、完成重复性任务以及扩展其他语言的自…

2026/10/13 7:30:04 阅读更多 →
Flutter在OpenHarmony上实现盲盒抽奖与地址管理的实战指南

Flutter在OpenHarmony上实现盲盒抽奖与地址管理的实战指南

前阵子接了个跑在 OpenHarmony 上的盲盒抽奖App需求,花了大概两周时间从环境搭建干到上线,中间把地址管理也一起做了。用 Flutter for OpenHarmony 来写,最直接的收获是不用维护两套界面代码,同一条业务逻辑既能跑在普通移动端&am…

2026/10/13 7:30:04 阅读更多 →
RAID10单盘失效降级处理全流程:从故障确认到重建监控

RAID10单盘失效降级处理全流程:从故障确认到重建监控

凌晨两点手机突然开始连续震动,不用看都知道是服务器告警:某台存储节点的一块磁盘掉线,RAID10阵列进入降级状态。说实话,干了这么多年运维,这种告警永远让人心头一紧——不是怕数据丢,而是怕处理顺序错了&a…

2026/10/13 7:30:04 阅读更多 →

最新新闻

Schema标记实战:用结构化数据占据整个SERP

Schema标记实战:用结构化数据占据整个SERP

1. "占据整个SERP"到底是怎么回事:从一次搜索结果截图说起先别急着上代码,我们得先搞清楚一个问题:所谓"占据整个SERP",到底长什么样?去年我接手了一个垂直电商的小项目,卖的是某种小众…

2026/10/13 8:16:34 阅读更多 →
AutoTool实操:Agent工具路由如何省下30%推理成本

AutoTool实操:Agent工具路由如何省下30%推理成本

AAAI 2026 放榜之后,我朋友圈里最热闹的话题除了 Jev 这种突然爆火的开源 Agent 项目,就是各路团队在吐槽“推理成本根本扛不住”。Jev 确实把复杂任务的拆解能力拉到了一个新高度,但问题也随之而来:工具越挂越多、调用链越拉越长…

2026/10/13 8:16:34 阅读更多 →
免费磁盘清理工具 Czkawka:找重复文件与清理空文件夹完整上手指南

免费磁盘清理工具 Czkawka:找重复文件与清理空文件夹完整上手指南

免费磁盘清理工具 Czkawka:找重复文件与清理空文件夹完整上手指南 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czkawka 是一款用 Ru…

2026/10/13 8:16:34 阅读更多 →
Faker库实战:让接口测试与自动化测试的造数更真实高效

Faker库实战:让接口测试与自动化测试的造数更真实高效

做接口测试和自动化测试的朋友,应该都体验过那种被“假数据”支配的尴尬。我早年在某项目组做下单流程的接口测试,为了凑测试用户,手工在配置文件里写了几百个“张三”,手机号清一色13800138000,地址全是“北京市朝阳区…

2026/10/13 8:16:34 阅读更多 →
带实习生三个月,我总结了一套 Mentor 带教方法:从前端页面切入到后端接口拆解(附完整清单)

带实习生三个月,我总结了一套 Mentor 带教方法:从前端页面切入到后端接口拆解(附完整清单)

文档教程知识库 【免费下载链接】InterviewGuide 🔥🔥「InterviewGuide」是阿秀从校园->职场多年计算机自学过程的记录以及学弟学妹们计算机校招&秋招经验总结文章的汇总,包括但不限于C/C 、Golang、JavaScript、Vue、操作系统、数据结…

2026/10/13 8:16:34 阅读更多 →
CyFA:放弃预测残差,用循环特征对齐提升多变量时间序列异常检测

CyFA:放弃预测残差,用循环特征对齐提升多变量时间序列异常检测

多变量时间序列异常检测这块,我前前后后折腾了不少方案。最早用的也是"先预测、再算残差"的老路子,后来复现了 GDN 和 KDA 这两个基线,说实话越用越觉得别扭。直到我自己折腾出一个叫 CyFA 的思路,直接扔掉 Delta Rule&…

2026/10/13 8:15:34 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →