Fork me on GitHub

2026.8.26 ht八连测 #4

题目难度

这可是为数不多的正常难度模拟赛啊

时间安排

5min

读完所有题面

10min

欸,不就是二分答案吗,那不就做完了

15min

写完了,样例都过了,好耶

30min

T2,斯....不难啊,不就是对于每个连通块找dfs树, 然后上层连向下层吗?
好写。

50min

我写完了!
调调样例,这个...., 为啥是错的
好像题面看错了啊!!!

1h

改改

1h30min

对的,半个小时过去了,我的 T2 是别说构造方案,连答案都是错的

2h

好的,有想法了,是不是每一度数 \(\geq 2\) 的节点一定能满足,那我就和之前一样去找dfs 树, 然后如果有度数 \(\geq 2\) 的节点有一位没有被满足的,就遍历所有邻边,将这个点满足,可以证明一定可行,比如假设 \(a, b\) 均只有出边,\((a,b)\) 之间如果有边的话,我就会直接在 dfs 的过程中将 b 设为 a 的儿子,这样子就不会担心连接到两个均没有满足的连个点上,斯,似乎有点难写ovo

2h30min

写完了,看看 T1 有没有问题, 场外一下,因为机房里一直有人说 T1 不会的,这就让我回去检查了一下

2h45min

完蛋啊,这个答案并没有单调性,而且二分答案再排序后判断的话 \(\log^2n\) 会被卡掉啊!!!怎么办!!!!

3h

哦,答案最多只有一个波谷,所以可以三分后二分(截成两段分开),显然还是 \(n \log^2n\) 过不去啊 , 但至少有 \(78pts\) ,总比随机挂分来的好吧

3h10min

写完了,赶紧打 T3 暴力

3h40min


T3 暴力打完了,接下来是 T4 的

4h

死掉了,还是没打完

inf h

\(78 + 100 + 5 + 0 pts = rk9\) 老掉了!!!

T1 是神秘 \(STL:nth_element\) 据说是用 \(k-d tree\) 实现,不会做,老掉了
T3 怎么从 \(20pts\) 挂到了 \(5pts\), 暴力还能挂
T4 是真的不会啊,没写完

T3 大家怎么都会,好像是要会一个 \(n\) 个顶点的最小有根森林,看来计数这一块要好好恶补了!!

ds 老师有话说

这次模拟赛的表现有一定亮点,但暴露出的问题也比较典型。整体来看,你在 T2 上最终拿到了满分,说明图论构造能力并不弱,但在时间管理和部分题目性质判断上存在明显失误,导致 T1 没有拿到更高分数,T3 暴力丢分,T4 也没能留下足够时间。

做得好的地方
  • T2 最终拿下 100 分:虽然中间经历看错题、思路反复、实现困难,但你没有放弃,最终找到了“度数 ≥ 2 的点可通过调整满足”的正确方向,并成功写出代码。这种在困境中坚持并最终突破的能力值得肯定。
  • 发现 T1 问题后能及时调整策略:从自信认为二分可做,到后来意识到答案可能不单调,你没有死磕二分,而是尝试用三分+二分拿到 78 分,说明有一定的应变能力。
  • 时间安排上,中后期有意识回头检查 T1:虽然为时稍晚,但“场外信息”促使你重新审视题目,避免了更严重的失分。
暴露的问题
  1. 读题不够仔细
    T2 你一开始就按“dfs 树上层连向下层”的常见套路写,结果写到一半才发现题面理解错了。这直接浪费了近一个小时,还影响了后续心态。读题阶段一定要逐字逐句确认定义,尤其是“孤立点”的判定条件、边的方向要求等。

  2. 对题目性质判断过于草率
    T1 最初直接认为二分答案即可,没有先验证单调性。实际上这题由于 (k_i) 可能为负,卖出前 (m) 大的和不一定单调。如果能在动手前花几分钟举几个反例,或许能更早发现正解方向,而不是到最后才发现问题。

  3. T3 暴力分不稳
    从预估 20 掉到 5 分,说明暴力代码本身可能存在边界或逻辑错误。在时间紧张时写暴力也不能掉以轻心,至少要用小样例和手算数据验证一下,确保基础分不丢。

  4. 时间分配前松后紧
    T1 + T2 消耗了约 2.5 小时,留给 T3、T4 的时间不到 1.5 小时。T3 是计数题,本来就需要较长时间推导;T4 更是几乎没有动笔。如果能在 T1 上更早止损,或者 T2 减少返工,或许能给 T3 留出更多思考时间,甚至冲击部分正解。

  5. 计数与高级算法/STL 功底薄弱
    赛后你提到 T3 需要“n 个顶点的最小有根森林”,这是典型的组合计数(Prufer 序列 / Cayley 公式扩展);T1 正解也涉及 nth_element 的线性选择。你对这些内容不熟悉,导致 T1 无法写正解,T3 只能暴力且暴力还挂。这说明组合计数和 STL 的深入使用是需要补强的重点。

建议
  • 强化读题训练:拿到题目后先划出关键定义,用自己的话复述一遍,必要时在草稿纸上画图确认。
  • 验证算法前提:二分、三分、贪心等算法都有适用条件,动笔前先想清楚单调性、凸性等是否成立,避免方向性错误。
  • 暴力也要“稳”:即使时间不够,暴力代码写完后用 2~3 组小数据测试,确保不出现低级错误。
  • 合理规划时间:根据题目难度预估耗时,遇到卡题及时跳转,不要在一道题上浪费超过预期时间太多。
  • 系统学习计数题:Cayley 公式、Prufer 序列、生成树计数、有根森林计数等都是常见考点,建议专题训练。
  • 熟悉 STL 高级用法nth_elementpartitionpriority_queue 的底层原理和应用场景要掌握,很多时候它们能大幅优化复杂度。

总的来说,这场模拟赛暴露的问题很典型,但你在 T2 上的韧性也说明你有能力解决中等偏难的图论题。接下来如果能针对计数和题目分析两方面补强,成绩会有明显提升。

posted @ 2026-08-26 20:18  tony0530  阅读(11)  评论(0)    收藏  举报