排好提交顺序,测完再交
这一课只练一件事:在一次限时的里,先把几道题的排好,再在写完或放弃每一题之后,用如实记录测过的数据和结果,并靠判断要不要换题或提前收尾。必会:能在模拟赛开始前用几分钟浏览全部题目并排出提交顺序(有把握的先做);能在完成或放弃一题后,在自测表里如实记录测试数据、结果和花费时间。最小示例:本次模拟赛有 3 道题——T1(简单,全对预计 20 分)、T2(中等,部分测试点可拿分)、T3(难题,暂时只会写暴力),总时长 120 分钟。样例追踪:先用 5 分钟浏览三题,标出把握程度,排出顺序 T1 → T2 → T3;写完 T1 后在自测表记录“样例通过、n=0 边界也测过,用时 25 分钟”;转到 T2,写完后自测表记录“样例通过,n=0 尚未测”;剩余时间不够时不硬啃 T3,先回头补测 T2 的边界。边界是不能跳过浏览直接从第一题硬写到底、也不能为了赶时间就跳过自测表不记录。建议掌握:定期查看时间记录,判断是否该换题或提前收尾,先保住已经确定的分数。拓展:某组数据没时间测完时,要在自测表里如实写清没测的原因(例如“时间不够”),供考后复盘,而不是假装测过或直接删掉那一行。这里不会在浏览器里运行 C++。
任务 1:先选出该怎么开始
先确定面对一场多题时该先做什么,再确定写完或放弃一题之后该怎么记录。点不认识的词可看基础解释。
必会:能说出为什么要先排提交顺序;能说出完成或放弃一题后要记录哪些内容。这里不会在浏览器里运行 C++,只练习选择和走过程。
模拟赛有 T1(简单)、T2(中等)、T3(难题)三道题,总时长 120 分钟。拿到题目后,第一件事应该做什么?先做什么 · 必会
写完(或决定放弃)一道题之后,应该怎么处理?记录进度 · 必会
任务 2:按浏览排序、自测记录、时间检查三步稳步推进
最小示例:模拟赛有 T1(简单)、T2(中等)、T3(难题)三道题,总时长 120 分钟。按顺序点三步:先排,再写,最后看。这里不会在浏览器里运行 C++。
必会:能解释每一步为什么这样做。边界:不要跳过“排提交顺序”直接从第一题硬写;每写完一题都要在自测表里留下记录,不能空手进入下一题。
- // 模拟赛:T1(简单)、T2(中等)、T3(难题),总时长 120 分钟
- // 浏览排序:5 分钟内粗看三题,估算把握,排出顺序 T1 → T2 → T3
- // 自测记录:写完一题就在自测表记“测过的数据 / 结果 / 用时”
- // 时间检查:定期看时间记录,判断要不要换题或提前收尾
三步走完了:提交顺序排好、自测表填好、时间记录也看过。现在把自测表里那一行「n=0 还没测」补上——给 T2 加上的处理。这一空要用判断个数是不是 0,下面是只读脚手架,只留一空给你输入;这里不会在浏览器里运行 C++。
- // 题目 T2:读入 n 个数,求它们的和(模拟赛里的第二题)
- int a[105]; // 最多 100 个数,下标从 1 开始用
- int main() {
- int n;
- cin >> n; // 自测表里漏掉的正是 n = 0 这一组
- // 空数据必须在这里就处理掉,不能往下走
- int sum = 0;
- for (int i = 1; i <= n; i += 1) { cin >> a[i]; sum += a[i]; }
- cout << sum << "\n";
- return 0;
- }
if (n == 0) { cout << 0 << "\n"; return 0; } // 个数是 0 就直接输出 0 并结束,后面的 a[1] 不会被执行到
任务 3:时间不够时,怎么记录才诚实
建议掌握:显示已经超出计划时长时,要先回头检查前面题目的,把能确定的分数先保住。拓展:某组数据确实没时间测时,要在自测表里如实写清没测的原因,而不是假装测过或直接删掉那一行。
必会 / 建议掌握 / 拓展:必会是排提交顺序、如实记录自测结果和用时。建议掌握是看时间记录决定要不要换题。如实记录未测完的具体原因是拓展,现在不用当硬门槛。
- // 时间记录:T3 已经卡了 40 分钟,总时长只剩 20 分钟,且没有其它题可换
- // 正确处理:回头检查 T1、T2 的自测表,先保住已确定的分数
- // 自测表:T2 有一组边界数据没测,时间不够了
- // 如实记录:在自测表写“n=0 未测,原因:时间不够”,供考后复盘
先判断时间不够时该怎么办:
再选出自测表里该怎么记录没测完的数据:
任务 4:随机小测,看看你是否真的懂了
每次从本课题库抽出三道不同的选择题。题目与解析已通过校验,答完后看解析,不要只看分数;拿不准就回到对应任务再看一遍。