分类
CSP-J/S

复赛注意事项(考前读)

在进入考试之前,知识储备决定了考试成绩; 在进入考场之后,心态、做题习惯、做题技巧,决定了考试成绩。

一、原则:拿分、拿分、拿分,尽可能在有限的时间内多拿分!
(1)记住考试的目的是为了拿分,一个题目实在没有更好的方法,那么就暴力求解或者针 对部分数据点拿分。
(2)会做的题目尽可能拿满分,先做有把握的题;不会做的题目针对部分数据点拿部分分数,不要因为一道题消耗太多时间,注意时间分配。

二、考试流程注意:
1、考前
调节心态,充分自信,自信并认真是最好的考试状态;
2、开考
(1)按准考证要求(请看清楚自己的准考证:D盘还是E盘) 创建、命名文件夹和文件,写好基本模板;

└── HN-009527----------------------<准考证号作为目录名>
    ├── task1-----------------------------<题目1目录>
    │   └── task1.cpp---------------------<源代码文件>
    ├── task2-----------------------------<题目2目录>
    │   └── task2.cpp----------------------<源代码文件>
    └── task3------------------------------<题目3目录>
    │   └── task3.cpp-----------------------<源代码文件>
     ... ...


(2)遇到任何规则上不清楚的问题(比如:保存文件、文件夹等问题)一定要和监考老师确认;文件名(程序名和输入输出文件名),必须使用英文小写。 (在使用windows系统时,可以勾选“显示文件扩展名”,避免扩展名错误
(3)main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。

#include<bits/stdc++.h> //可以用万能头文件,务必注意斜线方向
using namespace std; 
int main(){   //主函数必须返回int
    freopen("title.in", "r", stdin);   //文件输入
    freopen("title.out", "w", stdout); //文件输出

    //主要代码
    
    return 0;   //必须要return 0
} 

(3)大致浏览试卷,看哪些题自己比较“有感觉”,优先做相对简单的,自己有思路的问题。

3、快结束考试前 5~10 分钟
认真检查文件夹的命名、文件的保存,检查每道题基本模板正确,没有多余的输出;

三、做一个题目的流程:

1、读题

  • (1)仔细阅读题目的每一句话,理解题目,确认自己对题目的理解无误;
  • (2)测试数据能够人工计算的,通过计算测试数据确认自己理解无误,题目感觉不太理解 或者不太明确的,通过测试数据加深理解;
  • (3)自己举例计算,并思考有没有特殊情况; 部分题目有特殊情况,但测试数据不一定会展现特殊情况。

2、构建算法

  • (1)一定要仔细读题,认真思考;不要过早编程,记住考试的目的是为了拿分; 时间很宝贵,选错方法或者理解错题目导致的时间浪费很可惜;
  • (2)注意:数据量,确认是否要用 long long;(相加、相乘可能是 long long 吗?) 注意:数据范围,确认自己构建的算法,时间不超限;(当然,如果没有更好的算法, 也可以采用想到的算法拿部分分数)
  • (3)考虑特殊情况;
  • (4)构建算法可能需要消耗一些时间,但好的算法在实现的时候往往会容易一些;

3、编程

复杂问题注意将问题划分为子任务,逐步验证;

4、调错

  • (1)静态找错:不一定上来就要测样例数据,先通读程序,静态找错,防止样例正确,但程序有误的情况;
  • (2)测试样例:样例正确也可能拿不到满分,甚至可能是 0 分;
  • (3)反复举例验算:通过测试样例以及自己举例的数据验证正确性 。

5、离开题目前的检查

检查代码文件名代码保存目录freopen 的编写、是否有多余的输出等细节问题,反复检查无误,保存文件后再做下一题。

四、做题步骤小结:

  • 1、仔细读题:记录关键条件、约束信息;
  • 2、计算样例:思考是否有特殊情况;
  • 3、构建算法:重视数据结构、数据类型、数据范围;
  • 4、逐步编程:分步验证;
  • 5、静态读代码、测试样例、多个角度设计用例验算;
  • 6、检查目录、文件名;检查是否有多余的输出。一旦验证完成,不要随意修改。

五、一些建议

  • 输入、输出建议尽量使用 scanf printf,特别是数据量比较大的情况。
  • 对字符或字符串的处理可以使用:fgets、getchar、scanf、getline。
  • 数组定义全局变量优先,根据题意开数组大小,可以稍微大一点。
  • 小心爆int,爆long long。(long long格式控制符是%lld
  • 对于浮点数全都用double,不要用float。(double格式控制符是%lf
  • 不能使用的变量名,比如dfs、next、search、index、pow、min、max、y1、x0、link、map、pipe、ws、time等。