第20届北京邮电大学程序设计竞赛 游记

记录第 20 届北邮程序设计竞赛(预选赛 2026-10-11,正式赛 2026-10-18)的备赛与参赛全程: 预选赛复盘 A/B/E 三题与全场 58% 爆零率;正式赛当天先撞上热身赛「B、C 两题提交位置 反了」的笑料,靠 B 题一血、C 题首 A、G/F/H 拿下铜牌题,最后在第 282 分钟用 5 次提交 把 N 题的异或贪心硬扛出来,以 6 题 530 分收下银牌;赛后补题把 A 题改用 DFS 降一个 log、B 题从「范德蒙德卷积」转向按模三余数分类的 DP,两题连同数据搬上了洛谷。

游记

AtCoder ABC468 F - Chmax - Solution

将 1~N 的排列依次分配到两个变量上,最大化"当前值小于新值"的计数。核心结论:前缀最大值必贡献,剩余元素的最大贡献数为其 LIS 长度,答案 = 前缀最大值个数 + LIS(剩余序列),时间复杂度 O(N log N)。

题解

【动态规划】线性 DP 学习笔记

LIS 最长上升子序列的线性 DP 学习笔记,涵盖 O(n²) 朴素动态规划推导、最优子结构与无后效性分析、NOIP 2004 合唱队形例题,以及 O(n log n) 的 Patience Sorting(二分贪心)优化与常见误区。

学习笔记

Codeforces 670C Cinema - Solution

每个人有一种语言,每部电影有语音与字幕两种语言,选择「语音听懂人数最多、并列时字幕听懂人数最多」的电影。先离散化语言编号,用数组统计各语言人数后线性比较,O(n+m) 解决。

题解

LeetCode 4002 统计有效序列数目 - Solution

统计满足给定约束的有效序列数目。按位置依赖关系逐位确定取值,配合组合计数与贪心构造,一次线性扫描完成计数。

题解

洛谷 P14361 社团招新 - Solution

CSP-S 反悔贪心题:按「当前选择收益」排序后贪心选取,若后续出现更优解则用堆回退之前的决策,修正为全局最优,时间复杂度 O(n log n)。

题解

LeetCode 3501 操作后最大活跃区段数 II - Solution

LeetCode 3501「操作后最大活跃区段数 II」题解,基于 I 版结论将交易转化为相邻 0 块合并,用 Sparse Table 预处理相邻 0 块长度和的区间最大值,支持 O(log n) 单次查询。

题解

LeetCode 3499 操作后最大活跃区段数 I - Solution

至多进行一次「翻转单个字符」的操作,求能得到的最大连续活跃段长度。枚举分割点,统计左右两侧连续 1 段长度并讨论被 0 隔开的相邻段合并,O(n) 求最大值。

题解

Codeforces 26B Regular Bracket Sequence - Solution

求最长合法括号子序列的长度。用栈匹配或计数器维护当前未匹配的左右括号数,贪心地保留每一对可配对括号,O(n) 扫描即可得到答案。

题解

洛谷 P2678 跳石头 - Solution

经典「最大化最小值」二分答案 + 贪心判定问题,NOIP 2015 提高组,通过二段性将枚举转化为判定,时间复杂度 O(N log L)。

题解

本站由 zaochen 使用 Stellar 2.0.0 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
全站访问量 - 次 · 访客数 - 人 · 本页面浏览 - 次

站内搜索

没有找到内容!