2021.6.2 模拟赛游记

这次恐怕要变成纯的调查报告了——题目都简单的不得了,挂分也挂的不得了。

挂分情况及原因

  1. 未挂分
  2. 10030100 \to 30 组合数只开到 40004000,实际上得到 80008000
  3. 1000100 \to 0 dp 初始化。
  4. 10010100 \to 10 分析有误。

调查

FDR 的数据在这里可能不是那么的有用,因为只记录了每道题的完成时间和执行检查单的情况。在这次比赛之中,确实认真完成了各项检查单,在 C 题未调出而 D 未写的时候也执行了搁置程序。

但在做 A 和 D 的时候没有好好分析代码思路以至于在实现的时候遇上了各个本应避免的问题,包括 dp 含义不清等等。在 B 题中虽然是开小但这不应该属于检查单中的 range, 因为是对组合数的使用范围产生了误解。

这次的事故征候从做 A 题的时候就开始了,因为没有搞清楚各个数组的状态含义使得浪费了大量的调试时间,B 题还算顺利,但因为 A 的时间浪费使得没有时间去调不大熟练的 C,同时在 C 题时没有仔细厘清代码思路,使得需要时间去调试。这些原因也导致了 D 的挂分,最后成了这个结局。

所以本次的事故征候原因主要在于标准程序的不完善。

结论和建议

  1. 认真执行思考时标准程序,包括算法思路及代码思路。
    1. 涉及 dp 时应明确每个的状态意义。
    2. 应考虑实现时各个变量枚举的范围。
  2. 标准程序中也应包含时空分析。
    1. 包括对算法的时空分析。
    2. 包括对各种辅助,如组合数使用情况的分析。