- admin 的博客
 《CSP & NOIP 相关:报名、准考证,防爆零等等》
- @ 2025-10-26 10:13:21
 
《CSP-J/S 2025(第二轮)广东省认证考生注意事项》
快读快写模板:
template<typename T>void qr(T& x)
{
	x=0;int f=1;char c=getchar();
	for( ;!isdigit(c);c=getchar())if(c=='-')f=-1;
	for( ; isdigit(c);c=getchar())x=x*10+c-48;
	x=x*f;
}
template<typename T>void qw(T x)
{
	if(x<0)x=-x,putchar('-');
	if(x/10)qw(x/10);
	putchar(x%10+48); 
}
1、文件输入输出
CSP-J/S以及NOI系列正式比赛中采用的是文件输入和文件输出。
即输入数据需要从in文件中读取,计算结果输出保存到out文件中。
大家一定要牢记下面两行代码:
freopen("xxxx.in", "r", stdin);  // 打开输入文件  
freopen("xxxx.out", "w", stdout); // 打开输出文件  
// 重要提醒:
// 1. xxxx是每道题目的英文名字(如:game、tree、sort等)
// 2. 所有函数名称、参数、以及符号都不能写错
// 3. 任意一个字符出错都会导致读写失败,最终爆零
2、注意文件名、扩展名
每道题目的文件名都是给出的固定名字,注意一定不要写错。
考试时可能会遇到系统默认隐藏扩展名的情况,点击“菜单栏-查看-显示/隐藏-勾选‘文件扩展名’”即可查看文件扩展名。
例如,选手把文件命名为:xxxx.cpp,而实际上文件全称是xxxx.cpp.cpp
3、输出格式和大小写问题
选手一定要注意审题,题目是要求数据同行间隔输出,还是要求换行逐个输出。
当输出yes/no/right等英文提示时,一定要注意题目是需要首字母大写,还是要求全大写或其他格式。
| 题目要求 ✓ | 错误输出格式 × | 
|---|---|
| A B C | A | 
| B | |
| C | |
| Yes | YES | 
| yEs | 
4、注意存档,不要关机
很多初次参加比赛的选手,经验不足,容易慌乱。为了防止突发事件发生,*注意:至少每20分钟存档一次(频繁保存)。千万不要关机,否则程序会全部丢失。有任何疑问,及时找监考老师。
5、头文件问题
只写一个头文件
<bits/stdc++.h>
using namespace std;
用了using namespace std;之后容易产生下面的问题:自己的变量名和std命名空间的变量名冲突,而且在windows下编译器不报错,在Linux下会报错。
所以自己的变量名不要使用time、next等。如果需要这几个单词,可以将首字母大写(Time、Next),或添加前缀后级(mytime、mynext),或使用变形(tim、nxt),或定义成局部变量。
当然,time、next等作为结构体的成员名是没有问题的。
6、变量初始化
变量初始化常见的有两种方式:输入和赋值。变量在使用之前务必记得初始化,否则会导致里面的值是随机的,那么结果就会出现问题。也可以定义为全局变量,系统就会自动初始化。
7、不要用gets函数
由于gets函数会造成安全隐患,在C++中已经被弃用,如果继续使用的话,就会导致程序0分,所以注意不要使用gets函数。
但是可以使用以下方式或者其他读入方式:
使用下面的宏定义来取代:
char S[100];
cin.getline(S,sizeof(S))
string 类型:
string S;
getline(cin,S);
8、指针
指针一般竞赛选手用得比较少,因为太容易出错。
一般选手会开个数组,用下标i做指针,比较方便。
9、全局变量使用问题
全局变量不要使用x0、y0、x1、y1、xn、yn、j0、jn等,这些在C++11标准库里被定义不能用作全局变量了,否则Linux下编译会有警告或出错,但可以用作局部变量。
10、STL问题
STL主要是依靠各种容器和函数来实现各种功能,但是STL有些不是很常用,比较队列和栈,手写很方便,而且快一些,主要就用堆、字符串和动态数组。
11、时间和空间限制
CSP-J/S题目第一页有本次考试题目的相关信息,一定要全部符合!
1000毫秒内最大循环次数不要超过10^8(10^8可能会出现超时的情况,10^7一般来说不会超时)。
空间限制在128MB,数组元素类型为int时,元素个数最多千万级别(约3*10^7),要定义在到main函数外面的全局变量区(二维数组的两个维度大小要相乘)。
12、数据范围
有的题目,多个数相加,比如每个数的最大值到了1e9,为了防止数据溢出,存放和的变量必须要longlong。
定义全局变量时,要看清题目最后的数据范围要求。
13、数据类型
注意数据类型,输入输出的时候占位符和数据类型要一致。不一致的话有时候可能结果也没有错误,但是评测的时候就会有问题。
比如longlong的数据类型不能用"%d",而应该用"%lld",这些细节必须格外注意。
14、图的问题
建立图的邻接矩阵和邻接表时,选手要特别注意单项边、双向边、重边、自环等问题。
15、提交代码问题
一般是三层文件夹:
• 总文件夹(以准考证号命名,浙江赛区认证组织方已经在E盘根目录下建好)
• 子文件夹(根据每道题目英文名命名)
• 题目cpp源文件(根据每道题目英文名命名)
提交代码时,只保留.cpp文件,把编译后产生的文件全部删掉,如生成的可执行程序、.in文件、.out文件、*.ans文件等。
