[西建大ACM协会]OJ平台如何使用
[西建大ACM协会]OJ平台如何使用
0x00 前言
关于ACM比赛以及对应的练习对自己有什么好处,我不做多的解释,这次这篇文章只针对想要提升自己编程能力、但又苦于无法找到合适入门途径的新人。
备注:本文涉及到的OJ平台需要能够访问外网才可访问。
0x01 准备工作
访问外网工具(防和谐,不多说,后续的操作中都需要它)
浏览器(建议chrome,看不懂的题目就可以直接翻译了)
文本编辑器(非必要,许多OJ都有代码的编辑区,也可以直接在另外的一些网站上编辑测试代码,例如jdoodle与ideone)
0x02 注册账号
进入Aizu OJ主页Aizu Online Judge
点击右上角register/setting
注册账号
回到主界面,如果右上角蓝色箭头指向按钮显示的是logout
,就证明登陆上去了,如果显示的是login
,就点击它登录一下。
0x03 开始使用
点击上图中紫色箭头所指向的Course
,进入到课程系列中。
首先分别介绍一下前三个课程系列(新手只看第一个就可以,以后可以再看后面的)
ITP1(编程介绍1),主要是面对纯新手,以及学习了C语言等编程语言,但是平时从来没有实际练习过的人。里面的题目都很简单,但是却可以练习到所有的基础知识点。比如说简单的输入输出,各种运算符,条件判断,循环语句,以及指针,结构体等等。
ALDS1(算法与数据结构1),面向能够熟练使用一门编程语言的人,这一系列主要是练习各种经典的算法与数据结构,很多东西平时老师上课说过了,也说让自己下去练习,但是自己写出来的代码很难测试,比如说栈这个基础的数据结构,可以写一个类出来,但是自己测试的话,又得在主函数里写各种调用,很麻烦,而在这个课程系列里,他们的要求很明确,你只需要按照他们的要求写好代码就可以,他们有大量的测试数据来测试你的代码,细节问题基本都可以找出来,然后改正,对于算法与数据结构的理解与实现有很大的帮助。
ITP2(编程介绍2),面向的是能够熟练使用基础知识的人,具体内容的话不太好描述,总之,里面出现的问题都可以用C++的标准模版库里的各种类来解决掉,你也可以自己编写类,有助于对编程语言所提供的高级内容的理解。比如说
vector
,就可以理解为一个动态的数组,随着存储内容的增多,自己扩充容量,还有相应的各种方法来快捷的操作里面的数据。
点击紫色箭头指向的ITP1,进入对应的题目列表
1号区域是题目的小分类,有分支语句,循环语句,数组等等,更多内容自己探索。
2号区域是具体的题目,点击便可以进入题目的描述、以及提交代码的页面
我选择了1_3作为示例
这部分是题目描述,给你一个矩形的长与宽,计算它的周长和面积。
以C语言为例
#include <stdio.h>
int main(void)
{
int a, b;
scanf("%d %d", &a, &b); // 不要像谭浩强那本书一样, %d中间加逗号, 因为题目给出的样例输入中, 是以空格作为分隔的
printf("%d %d\n", a * b, 2 * (a + b)); // 最后记得换行, 不然会出现格式错误
return 0; // 这个是可有可无的
}
在1号箭头处选择你想要使用的编程语言
在2号区域粘贴/写你的代码
点击3号箭头指向的submit提交代码
如果通过了就显示AC,然后就可以写博客记录自己的经验或者继续下一道题了。