在介绍OJ系统之前,首先为大家介绍一下ACM:
ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内解决全英文问题,并在效率和速度以及代码的审查上要求非常严格以至近乎苛刻,被誉为是计算机界的“奥林匹克”。在大学中,因其含金量、认可度等非常之高,故而在大学生名企就业、保研、留学等方面都有着极大的帮助。ACM也因其独有的比赛趣味也在今天的高校中也得到了广泛的推广,许多大学生都为之着迷、甚至大学四年都为之献身。足以说明ACM的魅力所在。
OJ简介:
ACM比赛中主要以OJ(即Online Judge)判题为主,用来在线检测程序的正确性。OJ采用后台黑箱测试,测试数据非常全面,涵盖各种特殊情况。并且在结果的比对上也不放过一个空格和回车,这就要求程序员要有非常严谨的思维。著名的OJ有POJ、HOJ、UVA等。
轻量级入门OJ ACM训练平台:www.clang.cc
在各大OJ的ACM比赛赛题上,往往都会给出问题的描述(Description)、问题的输入和输出要求,并会给出几组样例数据。所以选手要在完全理解的基础上至少通过了样例数据才再提交代码。
下面我们介绍几种常见的输入输出格式。
A+B Ⅰ
这种输入的典型题目就是A+Bhttp://www.clang.cc/oj/problem.php?id=1085
此题只要求用户求A+B的和,但此类题目往往说明测试数据有多组。则默认是到文件(后台测试用例在文件里)末尾结束。我们则可以采用循环的方式不断接收测试用例,并且每接收一组输出一组(不必全部输入再全部输出,因为OJ只比对一次最后的结果)。
参考C代码:
#include<stdio.h>
int main()
{
int a,b;
while(scanf(“%d%d”,&a,&b)==2) //利用scanf的返回值
{
printf(“%d\n”,a+b);
}
return 0;
}
A+BⅡ
依然是A+B,我们可以看一下这道题http://www.clang.cc/oj/problem.php?id=1086
依然是求A+B,但它的输入数据为:
2
1 5
10 20
输出为:
6
20
此题相比第一道而言,会提前告诉你是几组数据,第一行的2就表示有两组数据。则此时我们可以考虑这样写:
#include<stdio.h>
int main()
{
int n;
int a,b;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
A+B Ⅲ
继续是A+B,不同的是题目中说明,有多组数据,但是以A和B都为0时结束,则此时,就要做判断。不能依然输出0。
http://www.clang.cc/oj/problem.php?id=1087
参考答案:
#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2)
{
if(a== 0 && b==0)
break;
printf("%d\n",a+b);
}
return 0;
}
A+B Ⅳ
题目描述:此类题目是求n个数的和,输入为先输入一个数组n,然后后面跟n个数字,求这n个数字的和。同样有多组数据,当n=0时结束。题目链接http://www.clang.cc/oj/problem.php?id=1088
样例输入:
4 1 2 3 4
5 1 2 3 4 5
0
样例输出:
10
15
参考写法:
#include<stdio.h>
int main()
{
int n;
int sum,temp;
while(scanf("%d",&n) && n)
{
sum=0;
while(n--)
{
scanf("%d",&temp);
sum+=temp;
}
printf("%d\n",sum);
}
return 0;
}
总结:
常见的ACM的输入输出格式如这些。
多组数据可能还会用到EOF、NULL这些宏。比如scanf、getchar、gets的返回值。
万变不离其宗,有些题目可能是这些格式的组合,亦或者是个别情况的变种,比如输出格式要求的变化等等,就需要各位ACMer灵活多变了。
分享到:
相关推荐
资源名称:算法题单-适用ACM、NOI、NOIP训练 内容概要:ACM 训练题单,从0到1,涵盖各大OJ平台,有大量题目可供针对性练习。 适用人群:ACM、NOI、NOIP、算法爱好者。 目标:提高算法能力,比赛争金夺银。
在ACM NOI CSP(中国计算机学会的青少年信息学奥林匹克竞赛)比赛中,参赛者们需要具备扎实的编程基础、算法理解能力和快速解决问题的技巧。这里,我们根据提供的标题和描述,结合可能包含在“ACM NOI CSP比赛的一些...
### ACM NOI CSP比赛经验分享 #### 一、基本功训练 **数据结构与算法** - **数据结构**:为了在...通过以上系统的训练和准备,结合良好的心态调整,相信每位参赛者都能在ACM、NOI、CSP等编程竞赛中取得理想的成绩。
NOI2012年第一场题目+数据,导入hustoj可用
编程比赛有三种主要的赛制,分别是ACM赛制、OI赛制和IOI赛制。这三种赛制在组织和评分方式上各有特点,广泛应用于各类编程竞赛中。 首先,ACM赛制,全称为国际大学生程序设计竞赛(ACM International Collegiate ...
NOI 2001 18/09/17 OJ1494 虫虫特工队 联合查找 18/10/12 LC307 范围总和查询 - 可变 二叉索引树 18/10/13 OJ197 手机 二叉索引树 IOI 2001 18/10/13 OJ3532 苹果树 二叉索引树 18/10/13 OJ17817 硬LIS 二叉索引树 ...
### 下一代测评系统的核心知识点 #### 一、测评系统的定义及其重要性 测评系统,在编程竞赛领域中,是指用于评估程序正确性、运行效率以及内存使用情况等多方面性能的软件平台。它对于确保竞赛结果的公正性和准确...
码学堂考试系统-V5-setup.zip 是一款专门针对中小学信息学教育和竞赛的在线测评系统。这个压缩包包含的核心文件是 "码学堂考试系统-V5-setup.exe",这通常是一个安装程序,用户可以通过运行该文件来在本地计算机上...
6. **杭电OJ**: 浙江大学杭州电子科技大学的在线判题系统提供了大量编程题目,对于初学者和进阶者都是一个不错的选择。这里的题目覆盖面广,适合逐步提升编程技能。 7. **NOI OpenJudge**: NOI OpenJudge是中国青...
POJ,ZOJ这类面向ACM和NOI竞赛的Online Judge有很多,那为什么要选择leetcode呢?我个人认为这些OJ间的差异不大,最重要的是能够有所收获就好。leetcode最大的特点就是只要有网络+浏览器就可以随时随地刷题或者调试...
八中OJ,又简作BZOJ,以原题巨多而著称,该数据为BZOJ上的1000-1109和1130-1139的测试数据节点,没有题目,有需要题目的可以到https://hydro.ac/d/bzoj/p网站查找对应的题目。