信息学奥赛CSP第二轮怎么才能不爆0呢?除了必背代码模板,参考下方链接:说说信奥C++编程到底应该怎么学?CSP-J2轮爆零现
还有最重要的四种解题策略。策略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分,可以把题面样例输出,说不定能蒙到判题样例,直接得分。