新用户必看

你好,如果你第一次点进这个网站,那么你就是一个新用户

请阅读本文来快速熟悉并上手,辅助我们更高效的学习编程。

关于OJ

什么是OJ

这个网站就是一个OJ平台OJOnline Judge的缩写,你的代码将会被在线评测

为什么要用OJ

刷OJ是提高编程水平的有效途径。如果你的目标是参加编程竞赛,如:各类等级考试、蓝桥青少、CSP-J/S、NOIP、NOI等,那么请尽情刷题!

🔥如何在OJ写出满分程序🔥

你在刷题过程中可能会踩过下面这种坑: 样例测试通过,但是程序提交就是不对!部分测试点错误或者测试点全错! 然后自己又半天找不出来哪里错误 那是因为刷题的姿势不对!

正确的刷题满分流程应该是:

  1. 读题
  2. 写程序
  3. 调试

一、读题

仔细读懂题目的每一句话,每个条件,当题目读不懂的时候可以参考输入输出数据来辅助理解题目意思,不要漏看每一个条件,因为漏看一个条件会导致你的程序直接0分或者写出的程序找不到哪里出错😣

看题目的输入输出格式,一定要根据题目要求的输入输出格式,输出格式跟题目不一致直接0分!!!真不是开玩笑的

看数据范围,声明的数组一定要比题目给出的数据范围略大,比如整型变量n的范围1<=n<=100,我们声明数组int arr[105],数组长度比n略大~

二、写程序

题目读清楚了就是想解题思路,如果有了正确思路,写出程序就是轻而易举的事,但是往往新手写出的程序会漏洞百出,这个时候就需要我们对程序要有一定的调试能力(平时练习程序可以多次提交,但是比赛的时候程序只有一次提交机会😭

三、程序调试

新手上路往往调试能力为0,但是也不要放弃、气馁,经验是一点点积累的,我开始也是小菜鸡,真的,很菜很菜

三种常见的调试方式:

  • 反复读题,看有无漏写的条件

  • 反复读程序,看有无逻辑问题或者因手误导致的细节错误

  • 在程序中多加一些输出来辅助判断变量值是否是正确的结果

    注:当程序对了一大半测试点,只有两三个测试点错误时,说明思路是没有问题的,小细节没有处理到位。

常见的程序反馈结果

先说下程序的评测机制,你写的程序会被机器运行,机器会把测试数据(一般一道题目10个测试数据左右)跑你的程序,然后再拿你程序的运行结果跟准备好的答案数据比较,如果一致则该测试点通过!

相关术语

关于在进行刷题训练时,常会出现一些英文术语,经常表示评测状态:

  • Waiting 评测:评测请求正在等待被评测机抓取
  • Fetched 评测:评测请求已被评测机抓取,正在准备开始评测
  • Compiling 评测:正在编译中
  • Judging 评测:编译成功,正在评测中
  • Accepted 通过:程序输出完全正确
  • Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行)
  • Time Limit Exceeded 不通过:程序运行时间超过了题目限制
  • Memory Limit Exceeded 不通过:程序运行内存空间超过了题目限制
  • Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等)
  • Compile Error 不通过:编译失败
  • System Error 错误:系统错误(如果您遇到此问题,请及时在讨论区进行反馈)
  • Canceled 其他:评测被取消
  • Unknown Error 其他:未知错误
  • Ignored 其他:被忽略