- wardwang 的博客
新用户必看——如何在OJ写出满分程序
- @ 2023-9-26 10:15:24
新用户必看
你好,如果你第一次点进这个网站,那么你就是一个新用户。
请阅读本文来快速熟悉并上手,辅助我们更高效的学习编程。
关于OJ
什么是OJ
这个网站就是一个OJ平台。OJ是Online Judge的缩写,你的代码将会被在线评测。
为什么要用OJ
刷OJ是提高编程水平的有效途径。如果你的目标是参加编程竞赛,如:各类等级考试、蓝桥青少、CSP-J/S、NOIP、NOI等,那么请尽情刷题!
🔥如何在OJ写出满分程序🔥
你在刷题过程中可能会踩过下面这种坑: 样例测试通过,但是程序提交就是不对!部分测试点错误或者测试点全错! 然后自己又半天找不出来哪里错误 那是因为刷题的姿势不对!
正确的刷题满分流程应该是:
- 读题
- 写程序
- 调试
一、读题
仔细读懂题目的每一句话,每个条件,当题目读不懂的时候可以参考输入输出数据来辅助理解题目意思,不要漏看每一个条件,因为漏看一个条件会导致你的程序直接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 其他:被忽略