CSP-J/S第二轮认证注意事项

2023-10-11 10:44

本文主要是介绍CSP-J/S第二轮认证注意事项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

金九银十日,复赛进行时。 CSP-J/S复赛马上就要开始了,但是每年都有很多孩子因为一些不起眼的失误导致一年的努力付之东流。下面为大家准备了一些复赛的注意事项,避免踩坑。

在哪里写代码

第二轮比赛与我们平时在OJ上做题形式不同,需要我们将文件放入规定的目录,然后汇总提交,由系统统一评测后得到分数。那么应该在哪里写代码呢?

一般情况下,主办方会在计算机的E盘(或者D盘)根目录下建立以考生准考证编号命名的文件夹,考生应检查该文件夹名称是否正确(包括编号及大小写字母)。如有错误须立即上报监考人员,由监考人员进行更改。

确认无误后,考生须为每道试题再单独建立一个子文件夹,子文件夹名与对应的试题英文名相同(参见试题封面页)。考生提交的每道试题的源程序(.cpp文件)也必须按照对应的试题命名,分别存放在其子文件夹下。

下面以CSP-J/S 2021 第二轮认证 入门组为例,山东考生张三,准考证号SD-1001,试题封面页如下:
在这里插入图片描述

以下演示以Windows环境为主,个别省份使用的是NOI Linux,操作基本类似。

SD-1001考生的答题目录如下:
在这里插入图片描述
每道题的源程序要放在对应的子文件夹下:
在这里插入图片描述

注意事项

  1. 仔细检查选手的目录名和题目的目录名,并确定拼写正确
  2. 源程序文件名(.cpp文件)必须使用英文小写,确定拼写正确
  3. 比赛结束时只保留源程序文件(.cpp文件)即可,其它文件可以删除。

如何输入输出

除了答题方式不同,考试还要求每道题从指定的文件输入数据,并将结果保存到指定输出的文件中。以上要求可以通过重定向输入输出来完成,方法如下。

在主函数的开头加入下面两行代码:

freopen("输入文件名", "r", stdin);
freopen("输出文件名", "w", stdout);

输入文件名和输出文件名在试题封面页可以找到。以candy这个题为例,其输入文件名为candy.in,输出文件名为candy.out
在这里插入图片描述
下面是实现代码:

#include <iostream>
using namespace std;
int main()
{//将标准输入输出重定向到文件中,注意文件名都是小写,不能有多余的空格freopen("candy.in", "r", stdin); freopen("candy.out", "w", stdout);int n, L, R;cin >> n >> L >> R;if(L / n != R / n) cout << n - 1;else cout << R % n;return 0;
}

加了freopen后,就不能像之前一样在控制台输入数据测试程序了。测试代码可以这样操作:

  • 在该文件夹下新建一个文本文档,将其重命名为candy.in(注意扩展名)
  • 使用记事本打开该文档,将测试样例拷贝过来,并保存
  • 运行程序,在目录下会自动生成candy.out文件,用记事本打开,检查输出结果。

当然,也可以先注释掉这两行代码,等程序测试无误以后再去掉注释。一定要记得去掉注释!!!

注意事项

  1. 输入输出的文件名必须使用英文小写,并与试题封面页要求的输入文件名和输出文件名相同,不能有多余的空格
  2. 如果注释掉了文件重定向的代码,等程序测试无误后,一定要记得去掉注释

其它注意事项

  1. 再次提醒,考试结束前请检查文件夹名,文件夹位置,文件名以及文件输入输出。
  2. 注意数据类型,需要时请使用long long或写高精度。(十年OI一场空,不开long long见祖宗)
  3. 注意数组大小,数组太大将无法运行导致0分。一个int为4字节,long longdouble为8字节,数组大小要在 3 × 1 0 6 3\times10^6 3×106以内。也不要数组太小,小心RE
  4. 不要忘记变量初始化,全局变量会自动初始化。
  5. 注意下标不要越界,比如背包j-w[i]时需要确实其大于等于0。
  6. 若使用直接输出进行调试,比赛结束前一定要再检查一遍输出的中间结果内容是否被删除,包括多余的换行。
  7. 涉及到有无解,可以直接输出无解骗分
  8. 不要使用nextY1y1作为变量名(同理还有hashtimepipeynj0j1jn),会导致CE。另外不要使用gets函数(C++14已经移除,用getline替代)。
  9. 检查是否直接除以0。
  10. scanf读取变量不要忘记加地址符。
  11. 不建议使用快读,关闭输入输出同步流即可。
  12. 编译记得开-std=c++14
  13. 输出格式不要出错,忘记输出换行或输出多个空格,如输出一行一定要输出换行。
  14. 不确定要写暴力。有想法且时间足够须对拍后作为自己的最终代码。
  15. 优先队列为priority_queue(默认大顶堆),哈希表unordered_map,不要拼错。
  16. double的比较需要使用fabs,不能直接==。例如:
#include <iostream>
#include <cmath>  // 绝对值函数头文件
using namespace std;
int main()
{const double eps = 1e-8; // 限定误差范围    double a = 10.0 / 3;double b = 3.333333333333 ;if (fabs(a - b) <= eps) cout << "a和b相等" << endl;else cout << "a和b不相等" << endl;return 0;
}
  1. 等监考老师收完代码再离场。

这篇关于CSP-J/S第二轮认证注意事项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/187497

相关文章

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

JAVA中while循环的使用与注意事项

《JAVA中while循环的使用与注意事项》:本文主要介绍while循环在编程中的应用,包括其基本结构、语句示例、适用场景以及注意事项,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录while循环1. 什么是while循环2. while循环的语句3.while循环的适用场景以及优势4. 注意

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

bytes.split的用法和注意事项

当然,我很乐意详细介绍 bytes.Split 的用法和注意事项。这个函数是 Go 标准库中 bytes 包的一个重要组成部分,用于分割字节切片。 基本用法 bytes.Split 的函数签名如下: func Split(s, sep []byte) [][]byte s 是要分割的字节切片sep 是用作分隔符的字节切片返回值是一个二维字节切片,包含分割后的结果 基本使用示例: pa

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [