美赛ICM D题实战:五大湖水质依赖分析与污染源识别
简介2024美赛ICM D题五大湖问题解析资料包面向参赛本科生与研究生帮助快速建立题目背景认知、选择建模方法并完成论文输出。资源涵盖题目拆解说明、五大湖水位与流量数据、MATLAB/Python仿真代码以及防洪调度、降雨径流、水库群联合调度等方向的参考文献从问题分析到模型实现均可找到对应素材适合备赛冲刺或赛后复盘。压缩包共142个文件以pdf文献与xlsx、csv数据表格为主包含png可视化图表、m/mat模型代码、py脚本及docx、caj论文等整体约162MB目录按数据、代码、文献等模块组织便于按需查找。目前已有181人学习下载对准备美赛ICM D题或研究湖库水位优化问题具有参考价值。包内相关论文涉及基于Copula函数的暴雨联合分布、汛限水位动态控制、模型预测控制等主题可用来拓展模型思路与写作深度。1. 这道题不是水文题2024美赛ICM D题到底在考什么拿到2024美赛ICM D题五大湖问题的队伍第一天晚上常会分成两派一派开始疯狂下载水文模型手册另一派盯着题目附带的五大湖水质量监测数据发呆。两派都很容易跑偏。这道题表面上在讲五大湖的污染指标、依赖关系和治理策略骨子里考的是三件事从混乱的监测数据里提取可信的污染源特征、用可解释的方法刻画指标之间的依赖关系、把“治理动作”翻译成可量化的模型参数。它不需要你做真正的湖沼学模拟但要求你像一个数据分析工程师那样把题干里的每个动词都变成一行代码或一个公式。适合读这篇文章的人有三类正在备赛的ICM参赛队伍、做环境数据分析时总被“数据多但解释少”困扰的从业者以及想弄明白“这类政策建议型题目到底要交什么东西”的学术写作新手。下面所有内容都围绕一个主线如何用五天时间把五大湖问题做成一个逻辑闭环、能跑能画图、还能被评委追问不慌的分析方案。2. 拆题干和数据五大湖D题的“题眼”与数据边界2.1 题目文本的三层信息主体、指标、代价美赛D题一贯的写法是先给场景再给任务。五大湖问题里第一层信息是“主体”——五大湖是一个相互连通的水体系统湖水通过河流、水道逐级流动上游湖的水质会直接影响下游湖。这一层很多队伍读懂了但实际建模时常把它当成五个互相独立的湖来处理这是第一个隐患。第二层信息是“指标”。题干会明确列出若干水质指标比如磷含量、溶解氧、藻类浓度、浊度等也会给出监测数据的时间范围和空间粒度。你的任务通常围绕“指标随时间的变化”“指标之间的相互影响”“污染源的识别”展开。第三层是“代价”也就是治理策略——限制污染物排放、清理河道、控制农业径流等。题目会问如果采取某项措施多久能看到效果、哪个湖最受益、成本效益比如何。三层信息合在一起题眼就是你能否把水体连通性、指标依赖关系、治理代价这三者放进同一个框架里讲清楚而不是分别交三块互不相干的分析。2.2 能拿到什么数据五湖水质的监测列与常见附加源D题提供的主要是五大湖各监测站点的水质指标时间序列。常见字段包括采样日期或年份、湖区编号、各水质指标的测量值、可能还有流量或水位信息。数据的典型特征是时间跨度长、空间点位固定、存在季节波动、同一指标在不同湖区间的缺失情况差异较大。我一般会在拿到数据后做三件事而不是急着画图。第一按湖区分组查看每个指标的非空值数量和时序连续性判断“哪些湖的数据能支撑逐年比较哪些只能做多年平均”。第二检查单位是否一致磷的测量可能在不同年份用过mg/L和μg/L两种单位这类问题不提前发现后面所有趋势分析都会失真。第三把长表转成宽表让每一行对应一个湖区的某一年每一列对应一个指标这是后续做依赖关系分析最顺手的形态。外部数据方面常见思路是补充降雨量、农业化肥施用量、人口密度或流域土地利用数据。但以竞赛时间来看我建议先问自己一句外部数据的加入能否改变题目要求的核心结论如果答案不确定就先用题目自带数据把主流程跑通外部数据作为敏感性分析的辅助变量即可避免在数据获取上消耗过多时间。3. 建模选型污染源识别和指标依赖的常见方案与取舍3.1 污染源识别为什么我优先考虑聚类加因子分析D题里“识别污染源”的实质是从多个水质指标的同步变化中找出潜在的统计模式。例如总磷、叶绿素a、浊度在某个湖区同涨同跌很可能指向农业径流或生活污水这类面源污染而溶解氧单独下降、其他指标变化不大则可能指向点源排放。面对这类问题工程上最稳的组合是因子分析或主成分分析加聚类。先用主成分分析把十几个相关指标压缩成两三个主成分每个主成分对应一种“污染模式”再用聚类按湖区或时间段把样本分组观察每组的主成分得分特征。为什么不用更时髦的方法一是监测数据的时间长度通常不足以支撑训练一个可靠的深度模型二是K-means和因子载荷矩阵可以直接画图写进论文评委能顺着你的逻辑走完每一步。有个选择细节值得注意主成分分析适合“压缩变量”但它的载荷是正交的解释性弱如果用因子分析加旋转载荷会集中在少数指标上解释性更强。我通常优先跑因子分析如果因子结构不稳定再退回主成分分析。参数方面提取因子数一般以特征值大于1为准配合累计方差贡献率80%以上这个阈值来定不要靠肉眼挑。3.2 指标依赖关系从回归到互信息怎么判断“谁影响谁”“哪个指标是哪个指标的原因”是D题的核心追问。但“原因”在统计上很难严格证明竞赛里真正能做的是把依赖方向的证据链摆出来。我的处理顺序是三步。第一步滞后相关分析。污染物在水体中的扩散有时间延迟上游某年磷浓度上升下游湖泊的叶绿素a浓度可能在第二年才响应。对每一对指标计算不同滞后期的皮尔逊相关系数找到相关系数最大的滞后阶数这比直接算同期相关更能反映水体连通的传导逻辑。第二步建立回归模型。把滞后响应指标作为因变量候选影响指标作为自变量用线性回归或决策树回归看特征重要性。第三步用互信息或距离相关做非线性补充防止线性系数为零但实际存在非线性依赖的情况。我习惯把结果收敛成一张“依赖关系图”箭头上标注滞后时间和相关系数。这张图既能让评委一眼看出“上游湖的磷→下游湖的藻类滞后1年”也能在最后回答“如果削减排放哪里最先见效”的问题——找到传导路径上的起点就行。4. 用Python搭一个五大湖水质模拟的最小流程4.1 数据清洗和对齐统一时间步是第一步无论后续用什么模型第一步永远是清洗和对齐。D题数据的常见问题是各湖区、各指标的时间戳不在同一个网格上有的指标测了每年两次有的则是月度监测。模型输入必须统一。import pandas as pd import numpy as np df pd.read_csv(lakes_water_quality.csv) # 统一列名Lake代表湖区编号Date代表采样日期Indicator代表指标名 df[Date] pd.to_datetime(df[Date]) df[Year] df[Date].dt.year # 按湖区和年份聚合取年平均值缺失超过半年的年份直接置空 agg (df.groupby([Lake, Year, Indicator])[Value] .agg(lambda x: np.nan if x.isna().mean() 0.5 else x.mean()) .reset_index()) # 长表转宽表每个指标独立成列 pivot (agg.pivot_table(index[Lake, Year], columnsIndicator, valuesValue) .reset_index()) print(pivot.head())这段代码做了两件事聚合和整形。groupby按湖、年、指标分组取均值缺失比例超过50%的年份返回NaN这样比直接删行更稳妥因为NaN可以在后续建模时用插值处理。pivot_table把指标从行转成列方便后面直接当特征矩阵用。参数说明agg里的0.5阈值表示“当年缺失超过一半就不算”你可以按数据实际稀疏程度调成0.2或0.8但我不建议低于0.2否则平均值全是插值没有分析意义。4.2 状态方程模拟用差分方程推指标随时间的变化识别出依赖关系后可以把五大湖系统看作一个多节点、有向连通的动态系统用一阶差分方程描述污染物浓度随时间的变化。这一步的意义不是构建一个水文级精度的仿真器而是把“治理动作”变成可操作的模型输入。import numpy as np import pandas as pd def lake_transfer(concentration, inflow, outflow, decay_rate, dt1.0): 一阶差分C(t1) C(t) (inflow - outflow*C(t) - decay_rate*C(t)) * dt inflow: 上游输入浓度贡献标量或数组 outflow: 流出系数表示水体交换强度 decay_rate: 污染物的自然衰减率 return concentration (inflow - outflow * concentration - decay_rate * concentration) * dt # 示意模拟单一湖区20年总磷浓度变化 years np.arange(2000, 2020) c np.zeros(len(years)) c[0] 0.35 # 初始浓度mg/L for t in range(1, len(years)): # 假设上游输入恒定但治理政策在第10年削减30%的输入 inflow 0.15 if t 10 else 0.15 * 0.7 c[t] lake_transfer(c[t-1], inflow, outflow0.05, decay_rate0.08) # 治理前后对比 print(f治理前第10年浓度:{c[9]:.3f}, 治理后第15年浓度:{c[14]:.3f})lake_transfer里的outflow和decay_rate是两个核心参数。outflow控制“湖里的水往外流多快”五大湖各湖区的水力停留时间差异很大上游湖区可能只要两年多下游湖区则可能超过一个世纪所以它的取值范围要跨几个数量级。decay_rate代表污染物自然降解、沉降等去除过程不同污染物差异明显磷的衰减率通常远小于易降解有机物。运行这段代码时我建议你先用固定参数跑通再设计一个参数扫描每个参数设低中高三档输出结果的变化幅度这就是敏感性分析的雏形。4.3 参数敏感性分析最值得调的三个参数状态方程模型最容易被评委问的一句话是“你的参数哪来的”所以敏感性分析不能省。我的做法是选定三个对结果影响最大的参数湖区之间的流量传输系数、污染物衰减率、治理措施的生效延迟时长。用网格扫描每个参数取5到9个值求目标指标比如下游湖区总磷浓度稳定值的变化范围。import numpy as np def run_model(outflow, decay_rate, policy_impact): c 0.35 record [] for t in range(20): inflow 0.15 if t 10 else 0.15 * (1 - policy_impact) c c (inflow - outflow * c - decay_rate * c) record.append(c) return record[-1] outflow_range np.linspace(0.01, 0.10, 5) decay_range np.linspace(0.02, 0.15, 5) policy_range np.linspace(0.1, 0.5, 5) results [] for o in outflow_range: for d in decay_range: for p in policy_range: results.append((o, d, p, run_model(o, d, p))) # 输出参数变化对应的结果标准差标准差越大说明该参数越敏感 df_results pd.DataFrame(results, columns[outflow, decay, policy, final_concentration]) for col in [outflow, decay, policy]: grouped df_results.groupby(col)[final_concentration].std() print(f{col} 导致的结果波动幅度: {grouped.mean():.4f})这里的np.linspace设置了参数采样范围run_model把上一节的递推逻辑封装成函数返回末期浓度。组合参数后统一计算这一步在竞赛中不仅提供结果还支撑“结论稳健性”这个加分项。参数采样范围怎么定outflow参考水力停留时间反推停留时间短的湖对应大流出系数decay_rate参考污染物的半衰期估算policy_impact直接对应题干里治理措施削减的百分比0.1到0.5是比较现实的区间。敏感性分析的核心价值在于当评委质疑“你参数不准”时你可以回答“模型结果对A参数敏感所以我把A参数标定为XX对B参数不敏感所以B的精度不影响结论方向”。5. 五大湖D题常见踩坑从数据处理到论文呈现5.1 五个湖共用一个扩散系数结果全线失真现象模拟出的下游湖污染浓度和真实数据差了一个数量级图画出来完全对不上。原因五大湖各湖区的水力停留时间差异极大上游湖区水体更新快下游湖区污染容易积累用同一个流出系数等于抹平了物理差异。解决必须分区标定参数。我的习惯是先用实测浓度序列反推每个湖的流出系数再用反推值做正式模拟。反推方法是简单的线性拟合把历史浓度变化率当作因变量当前浓度作为自变量斜率里就包含了流出和衰减的综合效应。5.2 数据缺年份直接删行导致时间序列断档现象某湖区某指标缺了连续三年监测有人直接把三年删掉后续“趋势分析”全部基于不连续的时间点结果出现假性上升。原因缺失年份不是随机的往往和监测计划调整有关直接删行等于抹掉一个结构性变化。解决优先做插值但要在论文里说明插值方法。年度数据用线性插值即可月度数据推荐pandas.Series.interpolate(methodtime)同时给出“插值前后趋势不变”的验证图。如果某段数据缺失超过半个时间跨度就别插了把它从趋势分析区间排除单列出来说明。5.3 指标单位不一致因子载荷图完全没法看现象因子分析结果的载荷矩阵里某个指标独占总载荷的80%其他指标全部趋近于零。原因不同指标的单位不同磷是mg/L叶绿素是μg/L藻类密度可能是cells/mL未做标准化直接进主成分分析量纲大的变量主导了方差。解决因子分析前必须标准化用StandardScaler或直接(x - x.mean()) / x.std()。标准化后还要再检查一次因子载荷如果某个指标仍然独占那就是数据质量问题而非量纲问题需要回头检查数据录入。5.4 用多年平均值预测趋势滞后效应被完全忽略现象题目要求预测某指标未来变化有人直接拿过去五年的均值做线性外推做出的预测曲线和实际波动完全错位。原因水质指标不仅随时间变化还受上游湖区传导的滞后影响简单时间趋势外推没有捕捉到“上游先变、下游后变”的结构。解决先把“对下游湖区的预测”和“对上游湖区的预测”分开。上游湖区可以用时间序列外推下游湖区必须把上游浓度作为输入变量带入依赖关系模型。换句话说下游预测不能只看自己的历史要看上游的历史。5.5 策略建议写成“每个湖都治理一遍”现象结论部分建议“五大湖应同时采取相同力度的减排措施”方案没有任何优先级。原因没有把依赖关系图落到策略层面。既然分析已经给出“上游磷传导到下游藻类”的路径策略就应该是“优先控制上游湖区排放下游湖区以监测和生态修复为主”。解决把治理策略分成两行一行是按污染源类型点源、面源一行是按湖区优先级用模型的敏感性分析给出“在哪治理”和“先治哪个”的量化依据。6. 收尾技巧用历史污染事件给你的模型找“后悔药”模型建完、参数调完、图也画完之后还有一件很重要的事验证。竞赛建模最怕的就是模型自说自话和真实世界没有任何可对照的锚点。我常用的收尾方法是“历史事件反演”。具体做法是找到某湖区在某一年出现过的公开水质异常记录比如藻类爆发或溶解氧骤降用当年的气象和流量条件驱动已经训练好的模型看模型输出的污染指标是否和真实监测值在同一个量级。如果模型预测的峰值浓度比实际高出两倍说明衰减率设置偏小回头调参如果预测滞后一年才出现峰值说明湖区间的传输系数设得过大。反演不需要精确匹配误差在50%以内就可以接受关键是证明你的模型结构对“突变场景”有响应能力而不是只会平滑地跟均值。另一个高频技巧是画“归因分解图”。用瀑布图展示某个湖区某年总磷浓度变化量由几部分组成——上游来水变化贡献了多少、本地排放贡献了多少、自然衰减贡献了多少。这张图的素材直接来自敏感性分析的记录每改动一个输入变量记录输出变量变化就能拆出每个因子的贡献量。评委看到这张图基本不会再纠结“你的参数哪来的”因为你已经给出了一套完整的可追溯链条。我自己的习惯是每一步分析都保留中间结果哪怕是画废的图也不删。建模第四天夜里想换一种聚类方式如果前面的因子载荷表还在十分钟就能跑完对比如果当时没存重新整理数据就要搭进去半天。竞赛也好真实项目也好数据工程的核心从来不是模型多高级而是流程经得起反复倒推。希望这些思路对你这次D题实战有帮助。本文还有配套的精品资源点击获取

相关新闻

显卡代码43别慌换主板:游戏本花屏排查全流程

显卡代码43别慌换主板:游戏本花屏排查全流程

玩游戏玩到一半,屏幕突然横竖条纹满屏飞,闪一下黑屏,切出来发现设备管理器里显卡项挂了个黄色感叹号,状态写着“代码43”。这台游戏本前一秒还在高产输出,后一秒就被系统判定“该设备已停止”。我修这类游戏本有年头了…

2026/10/11 17:59:02 阅读更多 →
AirCard社区与生态:Windows非官方移植、代码贡献指南与正确反馈问题的完整方法

AirCard社区与生态:Windows非官方移植、代码贡献指南与正确反馈问题的完整方法

AirCard社区与生态:Windows非官方移植、代码贡献指南与正确反馈问题的完整方法 【免费下载链接】AirCard Apple Wallet Card Skinner for iOS 18 (No Jailbreak Required) 项目地址: https://gitcode.com/gh_mirrors/ai/AirCard AirCard 是一款面向 iOS 18 的…

2026/10/9 21:04:40 阅读更多 →
PHP内容站从选型到上线:多域名架构与安全实战

PHP内容站从选型到上线:多域名架构与安全实战

1. 从一个“奇怪域名”说起:这个项目到底在做什么第一次看到avlang php,www.avlang12.info这个标题的时候,我脑子里冒出来的第一个念头是:这大概率又是一个用 PHP 搭起来的内容站,而且域名里带着数字后缀,说明它可能经…

2026/10/11 15:28:47 阅读更多 →

最新新闻

数据结构 - > 排序算法

数据结构 - > 排序算法

1. 排序的概念1.1 常见的排序算法1.2 排序算法的评价指标复杂度:评价排序算法的第一大指标就是时间复杂度和空间复杂度,它衡量算法的时间效率和空间效率。稳定性:假定在待排序的数据元素中有两个元素 Ri 和 Rj,它们对应的关键字为…

2026/10/12 3:39:10 阅读更多 →
ccg-workflow Shell 技能指南:Bash 脚本自动化、系统管理与多模型协作实战

ccg-workflow Shell 技能指南:Bash 脚本自动化、系统管理与多模型协作实战

【免费下载链接】ccg-workflow 多模型协作工作流引擎 — /ccg:go 一个命令,AI 自动分析意图、选择策略、编排 Codex Gemini Claude 协作执行 项目地址: https://gitcode.com/gh_mirrors/cc/ccg-workflow 点击查看 免费下载 导读 本文基于 ccg-workfl…

2026/10/12 3:39:10 阅读更多 →
2026年软件测试趋势:AI Agent、质量内建与可观测性重塑质量保障

2026年软件测试趋势:AI Agent、质量内建与可观测性重塑质量保障

做测试这行,每年年底都在猜明年的技术方向,但2026年这次不太一样。我最近和不少测试负责人、开发团队聊下来,大家最焦虑的已经不是又冒出了什么新工具,而是整个质量体系正在被 AI 和平台工程重构,很多沿用多年的测试方…

2026/10/12 3:39:10 阅读更多 →
netdxf实战:DXF文字注释与尺寸标注的创建与修改

netdxf实战:DXF文字注释与尺寸标注的创建与修改

接触过DXF开发的人应该都有这种感觉:画直线、画圆、画多段线都属于“基本功”,真正让图纸变得可读、可传递设计意图的,是文字注释和尺寸标注。这一篇是整个netdxf系列里我比较想写的一篇,因为注释和标注的处理逻辑和普通几何实体完…

2026/10/12 3:39:10 阅读更多 →
文华财经主升浪买点指标公式拆解:多条件共振识别趋势启动

文华财经主升浪买点指标公式拆解:多条件共振识别趋势启动

1. 文华财经主升浪买点指标的实战拆解做期货日内或者波段的朋友,应该都听过“主升浪”这个词。行情走主升浪的时候,速度最快、幅度最大,但也是最难拿得住的一段。很多朋友在文华财经软件里翻遍了各类指标公式,要么信号滞后&#x…

2026/10/12 3:39:10 阅读更多 →
ppt-master 的 IBM 品牌身份预设解析:从 Carbon Blue 设计规范到可执行的 design_spec

ppt-master 的 IBM 品牌身份预设解析:从 Carbon Blue 设计规范到可执行的 design_spec

AI 技能人工智能 【免费下载链接】ppt-master AI 把任意文档生成真正可编辑的 PowerPoint —— 原生形状与动画、演讲者备注可合成音频旁白、还能参考你自己的 .pptx 模板,而不是一张张图片 何雨果出品 项目地址: https://gitcode.com/hugohe3/ppt-master 点击查看…

2026/10/12 3:38:09 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →