电话18065871965

邮箱qidianxingcheng@163.com

地址三明市三元区乾龙新村69幢B座2楼

信奥赛CSP第二轮AC必备,拒绝爆零

2024年10月23日 398
从5个角度深入解析第二轮:考试准备、时间安排、拒绝爆零、合理骗分。
1、了解编程环境

信息学奥赛第二轮考试大部分是Linux环境。

使用的是官方的 NOI Linux,是带界面的操作系统,系统使用上和 Windows 差不多。有的省市使用的是虚拟机 Linux,也是一样的。

重点是选手要会使用 Code Blocks 编程软件。因为Linux上主要的编程软件就行它。

2、考前试机流程

正式开始考试前是有机试的,20分钟,所以可以先熟悉编程环境。具体考试流程参考下方图片。

3、拒绝爆零

总共 4 道题,每题100 分,共 400 分。大部分省市 200 分就可以拿一等奖(给大家点信心)。

每道题都有对应的文件名称、文件名称,直接复制粘贴过去,注意大小写。比如去年的试卷。

4、必背代码模板

以 “小苹果” 为例,文件夹是 apple ,在这个文件夹中:

  • 选手创建的源程序文件名是 apple.cpp
  • 输入文件是 apple.in 、输出文件是 apple.out
  • 建议使用 “复制” 和 “粘贴” 来输入文件名;

apple.cpp文件的代码格式:

5、合理骗分最简单

最重要的四种解题策略。

  • 策略1:算法解题
  • 策略2:暴力枚举
  • 策略3:数学方法
  • 策略4:答案直写

第二轮考试总共4道编程题,可以按优先级顺序使用这4种策略,尽可能的多得分。会的题使用第一种策略可以拿100分,不会的题使用第四种策略可以得10分。

我们先讲最简单的第4种策略:答案直写

当我们分析一道题,如果策略1~3都解不了,那么直接用策略4。比如有的题目比较难,没有思路。

分析题目中是否有关键输出,比如:Yes、No、0、-1等。这种题,你直接输出就可以了,一般都会得10分,这样就可以避免爆0。

比如2023年的T3:一元二次方程。题面有明确要求如下图:

那么程序中直接 cout << “NO” 就可以得10分。

一般4道题会有一道类似这种的题面。如果没有怎么办?

每道题都有输出样例,选手可以直接把输出样例在程序中输出,这种当然有蒙的成分,因为判题样例不一定是题目样例,但是总比不写好,万一蒙对了呢,就可以得10分。

第3种策略:数学方法

很多题目其实我们可以用普通的数学思维求解,也就是说先不管程序算法怎么写,就用数学方法求解。

还是2023年的T3:一元二次方程。学过这个数学知识的同学,肯定都会用数学方法解这道题。

那就很简单了,直接根据开方、整除情况写多个if-else ,然后把数学解法用程序表达即可,完全可以忽略题目中复杂的描述,至少可以得40分。

因为x1、x2有整除的、有x1=x2的、无解NO的情况,只要能把不同的情况用程序表达出来,就能得40分。

第2种策略:暴力求解

同学们肯定都做过百钱买百鸡的题目,这就是典型的暴力求解。

所谓暴力求解,就是可以通过循环遍历所有的情况,不管是几重循环,尽可能的覆盖样例答案。

特别是遇到的序列相关的题目,就可以通过循环遍历序列,把所有解的结果求出来,然后再根据题目处理正确答案,一般也是可以得部分分的。如下题描述:

前面分析的一元二次方程题,也用到了暴力求解的思路:通过if-else枚举所有情况,能整除的、不能整除的等等,然后每个都用程序表达数学解法。

所以暴力枚举,数据比较多就用循环暴力;情况比较少可以写多个分支。挨个处理,总能覆盖部分判题样例,得部分分。

第1种策略:算法解题

这种没有特别要说的,每个同学都应该掌握的解题思路:

  • 理解题面(借助关键字和样例)
  • 构建模型(解题思路,设计算法)
  • 编写程序(调试优化,尽量AC)
  • 审查程序(删除调试代码

选手们拿到试卷后,先不要着急答题,而是先把四道题浏览一遍,分析每道题可以用哪种策略,然后再逐个解题。

一般T1、T2相对比较简单,我们用第1种或第2种策略,尽量拿满分。T3考察逻辑题,按策略1~4的顺序解题。T4考察算法,比如图论、动态规划等,常用策略1解题。

解题策略优先级是:先策略1,最后策略4实在不会解,程序也不要空着,空着肯定0分,可以把题面样例输出,说不定能蒙到判题样例,直接得分