- 2022tysc0250 的博客
防爆0指南
- @ 2023-10-19 19:32:34
大部分都是 c 的。
防爆 指南
-
缺少头文件
在复赛考试中,需要使用
freopen函数。但是该函数需要#include <cstdio>或万能头。 -
文件读写保留了注释
(是谁我不说)因为会注释掉它来调试,所以一定要记得取消注释!!
-
文件名字写错
每个题目的输入输出文件的名字都是试卷上给出的固定名字,千万不要写错,注意大小写敏感。特别注意:
_与-、大小写字母的区别,文件夹名不得出现空格(包括前后)等。一般来说都是直接复制。 -
文件输入输出第二个参数
r和w写错、注意文件读入是
r,输出是w,不要写反,还有人两个都写r或者都写w(又是谁我不说)。另外去年还有个同学使用了单引号的 'r' 和 'w' 导致了爆零,注意一定是双引号的“r”和“w”! -
没删调()试
为了调试代码,需要写了一些用于辅助输出语句,记住调试完成后一定要将这些语句删除或者注释掉!
-
数组开的太大或太小
数组如果开的太大,会导致内存超限错误或者运行错误,我们数组的大小顶多开到 左右,如果确实需要更大的数组,首先尝试优化算法的空间使用,实在找不到优化算法,可以用
vector动态数据,map<int>模拟一维数组,map<int,map<int,int>>模拟二维数组等方法解决。若数据范围给力,也不要开太小。(是谁写的int a[114514];挂分我不说) -
文件目录错误
正确的文件目录如下: 在选手答案目录下,请选手将提交的用于测评的全部文件(文件夹、源代码等)直接放在以自己的考号命名的目录下以题目英文名称命名的子目录中。以选手李华为例,答案目录的储存结构为:
└ GD-J00123----------------------------------------<文件夹>
├── xjy.txt-----------------------------------<文件>
├── task1-----------------------------------------<子文件夹>
│ └── task1.cpp----------------------------------------<文件>
├── task2-----------------------------------------<子文件夹>
│ └── task2.cpp------------------------------------------<文件>
└── task3-----------------------------------------<子文件夹>
│ └── task3.cpp-----------------------------------------<文件>
└── task4-----------------------------------------<子文件夹>
└── task4.cpp-----------------------------------------<文件>
比赛时的一些建议:
- 输入输出数据量比较大的情况一定要使用
scanf、printf,使用cin、cout会出现超时错误。 - 对字符串的处理不要用
gets,可以使用:fgets、getchar、scanf、cin.getline。 - 数组定义全局变量优先,根据题意开数组大小,可以比题目要求稍微大一点,但是若题目要求的数组数量太大时可以使用
vector动态数组控制内存的使用或者用map模拟数组使用。 - 小心爆
int,爆long long。(注意long long格式控制符是%lld) - 对于浮点数全都统一用
double,不要用float。(注意double格式控制符是%lf) - 进入试室开考前的准备:
- 检查电脑系统时间是否准时。
- 测试系统 D 盘是否已解除还原,在 D 盘中新建一个文件,重新启动电脑后,看看刚才新建的文件还在不在?
- 打程序模板,按照操作指南建立相应目录文件。
另:原版:
# 第二轮复赛防爆0指南
每年在复赛考试中,都有很多学生因为一些低级失误导致“爆零”,即得0分。其中“爆零"最多的是因为文件输入输出问题,常出现的问题如下所示:
## 1.缺少头文件
在复赛考试中,需要使用freopen函数来进行输入输出重定向,而这个函数需要加头文件#include<cstdio>,或者直接使用万能头文件#include<bits/stdc++.h>,若不加头文件#include<cstdio>,也不使用万能头就会“爆零”。总结起来比赛时,学生用的程序框架:
## 2.输入输出重定向语句注释完成代码调试后未解开注释
考试的时候直接用以上程序框架就行,然后在freopen()下面开始写程序。学生做题时为了方便测试,可以暂时先把两个freopen()注释掉,但是最终提交的程序里面一定要有freopen()做文件输入输出重定向。
## 3.文件名字写错
每个题目的输入输出文件的名字都是试卷上给出的固定名字,千万不要写错,注意大小写敏感。特别注意:“\_”与“-”、大小写字母的区别,文件夹名不得出现空格(包括前后)等。
## 4.文件输入输出第二个参数“r”和“w”写错
注意文件读入是“r”,输出是“w”,每年都有人写反,还有人两个都写“r”或者都写“w”。另外去年还有个同学使用了单引号的'r'和'w'导致了爆零,注意一定是双引号的“r”和“w”!
## 5.调试代码未注释或删除
有些同学为了调试代码,写了一些用于辅助输出语句,记住调试完成后一定要将这些语句删除或者注释掉,否则“爆零”!
## 6.数组开的太大无法测评
数组如果开的太大,会导致内存超限错误或者运行错误,我们数组的大小顶多开到10^7左右,如果确实需要更大的数组,首先尝试优化算法的空间使用,实在找不到优化算法,可以用vector动态数据,map<int>模拟一维数组,map<int,map<int,int>>模拟二维数组等方法解决。
## 7.文件目录错误
正确的文件目录如下: 在选手答案目录下,请选手将提交的用于测评的全部文件(文件夹、源代码等)直接放在以自己的考号命名的目录下以题目英文名称命名的子目录中。以选手李华为例,答案目录的储存结构为:
## 比赛时的一些建议:
1、输入输出数据量比较大的情况一定要使用scanf、printf,使用cin、cout会出现超时错误。 2、对字符串的处理不要用gets,可以使用:fgets、getchar、scanf、cin.getline。 3、数组定义全局变量优先,根据题意开数组大小,可以比题目要求稍微大一点,但是若题目要求的数组数量太大时可以使用vector动态数组控制内存的使用或者用map模拟数组使用。 4、小心爆int,爆long long。(注意long long格式控制符是%lld) 5、对于浮点数全都统一用double,不要用float。(注意double格式控制符是%lf) 6、进入试室开考前的准备,一、检查电脑系统时间是否准时,二、测试系统D盘是否已解除还原,在D盘中新建一个文件,重新启动电脑后,看看刚才新建的文件还在不在?三、打程序模板,按照操作指南建立相应目录文件。
希望同学们不要因为上面这些低级错误而失分,考试不仅考的是知识,更是包括细心、耐心和思维能力在内的全方位的综合能力考察,祝同学们都能取得理想的成绩!