国际大学生程序设计大赛(ACM-icpc)输入输出介绍
ACM介绍1
竞赛过程
• 读题 • 建模 • 数据结构与算法选择 • 语言实现 • 提交 • 结果返回
常用术语
ICPC (International Collegiate Programming Contest) 国际大学生程序设计竞赛 AC (Accepted) 程序通过 WA (Wrong Answer) 错误的答案 (读做 “哇”)
例:C输入输出字符串
读写字符串(串以空格、回车分隔) #include <stdio.h> int main (){ char a[100]; while ( scanf("%s",a) == 1) printf ( "%s\n",a); return 0; }
例:C输入输出字符串(续)
读写字符串(串中有空格,串以回车分隔) #include <stdio.h> int main (){ char a[100]; while ( gets (a) ) printf ( "%s\n",a); return 0; }
A+B problem(文件输入输出)
C++的标准输出流
标准输出流对象cout
字符、整数、实数、字符串等的输出都用cout
cout << 需要输出的数据 cout.write() //按照指定长度输出字符串 cout.put() //输出一个字符
输出格式控制
C++的标准输入流
标准输入流对象cin 字符、整数、实数、字符串等的输入都用 cin cin >> 变量名 cin.get() cin.getline()
}
return 0;//返回0
ACM国际大学生程序设计竞赛简介
1.ACM国际大学生程序设计竞赛简介1)背景与历史1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕。
1977年,该项竞赛被分为两个级别:区域赛和总决赛,这便是现代ACM竞赛的开始。
在亚洲、美国、欧洲、太平洋地区均设有区域赛点。
1995至1996年,来自世界各地的一千多支s代表队参加了ACM区域竞赛。
ACM大学生程序设计竞赛由美国计算机协会(ACM)举办,旨在向全世界的大学生提供一个展示和锻炼其解决问题和运用计算机能力的机会,现已成为全世界范围内历史最悠久、规模最大的大学生程序设计竞赛。
2)竞赛组织竞赛在由各高等院校派出的3人一组的队伍间进行,分两个级别。
参赛队应首先参加每年9月至11月在世界各地举行的“区域竞赛(Regional Contest)”。
各区域竞赛得分最高的队伍自动进入第二年3月在美国举行的“总决赛(Final Contest)”,其它的高分队伍也有可能被邀请参加决赛。
每个学校有一名教师主管队伍,称为“领队”(faculty advisor),他负责选手的资格认定并指定或自己担任该队的教练(coach)。
每支队伍最多由三名选手(contestant)组成,每个选手必须是正在主管学校攻读学位的学生。
每支队伍最多允许有一名选手具有学士学位,已经参加两次决赛的选手不得再参加区域竞赛。
3)竞赛形式与评分办法竞赛进行5个小时,一般有6~8道试题,由同队的三名选手使用同一台计算机协作完成。
当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。
若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。
程序运行不正确是指出现以下4种情况之一:(1)运行出错(run-time error);(2)运行超时〔time-limit exceeded〕;(3)运行结果错误(wrong answer);(4)运行结果输出格式错误(presentation error)。
ACM-ICPC简介和参赛规则
ACM/ICPC(ACM International Collegiate Programming Contest, 国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACM(Association for Computing Machinery,国际计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。
1.ACM-ICPC的历史及其影响ACM/ICPC从1970年开始,已经举办了30多届,其目的旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。
该竞赛一直受到国际各知名大学的重视,并受到全世界各著名计算机公司的高度关注。
可以说,ACM国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。
2.ACM-ICPC的比赛形式和内容ACM/ICPC采用组队参赛的形式,由三名队员组成一支队伍参赛。
比赛时三名队员只使用一台电脑,整个比赛时间为5个小时。
比赛题目为6~10道不等,全英文。
标准的程序数据输入和输出解答要求。
选手们必须根据题目内容设计算法,并完成相应的功能要求。
该队程序如果能在规定时间内得出正确的答案视为通过。
队伍通过的题目数量多的在比赛中排名越高,题目数相同的则用时越少的排名越高。
3.竞赛内容竞赛涵盖的范围很广,大致划分如下:Direct(简单题),Computational Geometry(计算几何),Number Theory(数论),Combinatorics (组合数学),Search Techniques(搜索技术),Dynamic Programming(动态规划),Graph Theory(图论),Other(其他)可使用的计算机语言:C语言、C++,JAVA竞赛规则参赛队组成1. 教练是参加队伍所代表学校认定的正式教师,教练必须保证所有队员符合本规则的规定。
教练作为参赛队伍代表,负责竞赛活动中的联系工作。
2. 只有当赛区组委会从教练处获得所有保证队伍合格的资料后,一支队伍才能获得参赛的资格。
吉林大学ACM国际大学生程序设计竞赛简介
吉林大学ACM国际大学生程序设计竞赛简介竞赛宗旨ACM国际大学生程序设计竞赛是由位于美国的计算机协会组织的年度性竞赛,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事,它已成为国内外各高校展示实力、加强交流、相互促进、共同发展的广阔舞台。
ACM/ICPC作为具有国际权威性和影响力的国际大学生程序设计竞赛,已成为衡量大学生程序设计能力和学校计算机学科水平的重要标准之一。
我校于2002、2003、2004、2005年参加亚洲预赛,分别在这八个赛区中取得学校排名第16、第17、第12、第9,第7、第18,第21,第17,共获得银奖2块、铜奖6块,竞赛成绩在不断稳步提高。
竞赛支持网站:(校外)(校内)竞赛联系地点:前卫南校区萃文楼501竞赛交流平台:吉林大学BBS 牡丹园-电脑技术-算法版/cgi-bin/bbsdoc?board=Algorithm参赛对象1、凡吉林大学在校本专科生均可报名参加。
年级、专业不限。
鼓励低年级同学参加。
2、比赛学生以个人身份参加,每人独立参赛。
3、参赛同学应在竞赛网站上注册参加热身赛,在报名时提供个人资料。
4、参赛同学应保证自己身份等资料的真实性。
5、以往学校代表队同学成绩不影响其他同学排名及奖励。
竞赛细则1、选手在参赛时携带个人证件。
2、竞赛以上机为比赛方式。
3、竞赛中至少命题6题,至多命题10题,上机比赛时间为5个小时,中间不休息。
4、参赛选手可以携带诸如书籍、字典、手册、程序清单等文字性参考资料。
5、参赛选手不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的磁盘或计算器)。
6、参赛选手不能携带任何类型的通讯工具,包括无线电接收器、移动电话等。
7、选手未解决全部题目不得提前离场8、竞赛的预定时间为5小时,但当竞赛进行一定时间后,竞赛裁判可以因为出现不可预见的事件而调整比赛时间长度,一旦比赛时间长度发生改变,将会以及时并且统一的方式通告所有参赛选手。
9、当参赛选手出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛裁判取消参赛资格。
1.ACM简介与输入输出
参考源代码
#include <stdio.h> int main(void) { int a; while(scanf("%d",&a)==1) printf("%d\n",a*a); return 0; }
39/70
本类输入解决方案:
• C语法: while(scanf("%d",&a) = =1) { .... } • C++语法: while( cin >> a) { .... }
24
24/70
25
25/70
为什么要参加编程比赛
• 能力的提高 • 学到很多书本上和大学里面学不到的知识和技能 • 有机会云游四海,可以和众多武林高手同场竞技,交到很 多志同道合的朋友 • $$,出国的机会 • 对未来极其有利 – 高考保送、高考加分、保研 – 大公司不仅自己举办、同时自己举办各类编程竞赛、 非常重视选手的编程比赛经历和成绩 • 编程竞赛非常有趣!
34/70
输入_第一类:读入一个参数
• 输入不说明有多少个Input Block,以EOF或-1 为结束标志。 • 读入一个输入对应一个输出,输入数据可以是 多组
35/70
• 题目分析 怎样判断输入的结束? • scanf函数的原型如下: int scanf(const char *format [, argument]... ); • 其返回值为:成功读取并分配的元素个数。
1987
1986
美国圣路易斯
美国辛辛那提
斯坦福大学
加州理工学院
美国
美国
1985
1984 1983 1982 1981 1980 1979 1978
【综合】Acm竞赛简介
Parity(ceoi99)(肖天)
• 建立sum数组,sum[i]表示从1到i之和是奇(true)还是偶 (false),sum[0]=false。这样题目中给的任意问题(a,b) 的答案都可以用sum[b] xor sum[a-1]表示。 • 开始我们并不知道sum[1..n]的值,不妨设为false,这时任意 sum[a],sum[b]都是独立的。对于每对问答(a,b,c),都可以 知道sum[b] xor sum[a-1]=c,由此把sum[b]和sum[a-1] 联系起来。这步操作可以用并查集完成,对于问答(a,b,c)如 果sum[a-1],sum[b]不属于一个集合就把它们并起来,否则 如果sum[a-1] xor sum[b]不等于c则说明出现矛盾,输出总 句数,退出。 • 对于不出现矛盾的sum数组,对于每个集合分为两个部分,我 们指定其中一个部分为true,另一个部分为false,则可以确定 sum数组,利用sum[i] xor sum[i-1]可以求出第i位的数字, 由于不同集合之间没有问答出现,所以此数列是一可行解,证 明算法正确。
• 但有时却是最好的办法
22
Pizza Anyone? (ZOJ 1219)
• 题目大意: 你需要为你和你的朋友们订一个皮萨。 每个朋友都会告诉你他们想和不想放进皮萨 里的东西。 你是否能订一个皮萨,让他满足每个人 至少一个条件。 假设一共有16种东西可以放进皮萨。
23
2 65536
16
是个对计算机很 小的数
3
ACM
ACM (Association for Computing Machinery) 成立于计算机诞生次年,是目前计算机学界中历史最 悠久、最具权威性的组织,是推进信息技术专业人员 和学生提高技巧的主要力量。ACM通过提供前沿技 术信息和从理论到实践的转化,为其全球7.5万名成 员服务,并已经成为信息科技领域的一个基本信息来 源。
ACM-ICPC入门介绍
ACM/ICPC入门首先,我很高兴看到这届的学弟学妹们能有兴趣来关注我们学校的ACM/ICPC竞赛项目,那什么是ACM/ICPC呢?下面我就做个简单的介绍吧~ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC))是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。
经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
赛事目前由IBM公司赞助。
比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种语言编写程序解决7到10个问题。
简单点说就是当今世界含金量最高的大学生编程竞赛。
可能很多同学现在刚刚学C++没几天,感觉编程是个很难的一件事,实际上练熟了的话也不是很难的~而参加ACM正是一个帮助你锻炼编程能力的很好的机会,毕竟如果大家毕业以后想从事IT行业的话,没有扎实的编程功底,显然是……那如何入门呢~在这我介绍国内一个很好的OJ网站,很适合初级和中级水平的ACM选手来练习,杭州电子科技大学的OJ网址——/所谓OJ就是Online Judge在线判断的意思,让你通过网络把你做的编程题的源码提交上去,让OJ的服务器判断你的代码是否正确。
这个是杭电OJ主界面的截图~右上方有个登陆和注册窗:点击Register new ID即可,然后会进入一个注册界面:把打星号的选项填完后,点下方的Submit就好了~ 那怎么去做题呢?主界面有个Problem Archive,点击进入后,就能看到上方的Volume代表你所选的是第几卷题目,每卷有一百道题,那么我们先来看看第1000题吧,这个是最简单的一个ACM题了~题目大意是输入两个数A和B,要求输出A + B的值,这个基本上上过C++课的都应该能写出代码来,但要注意的是,在OJ系统里,对代码是有要求的。
ACM_ICPC-1ACM简介与输入输出
2020/11/12
32
优秀竞赛学生回母校做宣传
亲爱的学弟学妹们,你们好!我是来自成都市大 弯中学的廖孜。 古语云,“少不入蜀”。大多指年少的时候停留 在蜀地,往往会使年轻人安于享乐,不思进取、难 成大器。然而,电子科技大学却绝非是这样的。 四年前,我怀着好奇与兴奋的心态进入了电子科 技大学。在奇特的机缘下我接触到了ACM-ICPC 竞赛,并为之奋斗了四年。也正是因此,我有了 一个忙碌却又异常精彩的四年大学生活。我还清 晰记得当时刚入校时许下的种种梦想,亚洲区域 赛金牌,就职Google美国硅谷总部MountainView, 代表中国参加俄罗斯叶卡捷琳堡世界总决赛。尽 管过程曲折,但可贵的是,这些梦想几乎所有都 实现了。不得不感谢电子科技大学这样优秀的大 学,给我梦想提供了舞台。
26
27
28
2020/11/12
29
2020/11/12
30
为什么要参加编程比赛
• 能力的提高 • 学到很多书本上和大学里面学不到的知识和技能 • 有机会云游四海,可以和众多武林高手同场竞技,交到很
多志同道合的朋友
• $$,出国的机会 • 对未来极其有利
– 高考保送、高考加分、保研
– 大公司不仅自己举办、同时自己举办各类编程竞赛、 非常重视选手的编程比赛经历和成绩
2. EOF是一个预定义的常量,等于-1。
例如:
#include <stdio.h> int main(void) {
int a=0,b=0,c=0,k; k=scanf("%d%*d%d",&a,&b,&c); printf("k=%d,a=%d,b=%d,c=%d\n",k,a,b,c); } 若输入:1 2 3,则输出为:k=2,a=1,b=3,c=0 注意: •常常用while(scanf(“…”,…)==…)来判断循环的进行。 •从键盘输入时为表示输入已结束,应该先按Enter,再 Ctrl+Z,再按Enter。
第1章 ACM国际大学生程序设计竞赛简介
ACM-ICPC的历史 的历史
• 该项竞赛从 该项竞赛从1970年举办至今已历 届(2010年) 年举办至今已历35届 年举办至今已历 年 • 两个阶段:区域预赛、世界总决赛 • 区域预赛:在上一年的9月~12月在各大洲举行 区域预赛:在上一年的 月 月在各大洲举行 • 世界总决赛:在每年的 世界总决赛:在每年的3~4月举行 月举行 • 各预赛区第一名自动获得参加世界决赛的资格?!
2012-3-15
其它教学参考书
编 号 1 2 3 4 5 6 7 书 名 作 者 王建德 柴晓路 吴文虎 王建德 吴文虎 王建德 吴文虎 王建德 吴文虎 倪兆中 王 帆 王建德 吴永辉 王建德 吴永辉 出版社 复旦大学出版社 清华大学出版社 清华大学出版社 电子工业出版社 清华大学出版社 人民邮电出版社 人民邮电出版社 出版 时间 1999.1 1997 1997 1998 1998 2008.7 2009.10 国际大学生程序设计竞赛试题解析 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––组合数学的算法与程序设计 克竞赛指导 组合数学的算法与程序设计 青少年国际和全国信息学(计算机 奥林匹 青少年国际和全国信息学 计算机)奥林匹 计算机 克竞赛指导––图论的算法与程序设计 克竞赛指导 图论的算法与程序设计 实用算法的分析与程序设计 ACM国际大学生程序设计竞赛试题与解 国际大学生程序设计竞赛试题与解 析(一) 实用算法分析与程序设计 程序设计中常用的解题策略
2012-3-15
其它教学参考书
编 号 8 9 10 书 名 作 者 吴文虎 赵 鹏 王晓东 卢开澄 出版社 清华大学出版社 电子工业出版社 清华大学出版社 出版 时间 1999 2003.1 2000.1 1993–1996美国计算机程序设计竞赛试题 美国计算机程序设计竞赛试题 与解析 计算机算法设计与分析 算法设计与分析
ACM国际大学生程序设计竞赛
资料(推荐书籍)
• 算法竞赛入门经典 • 清华大学出版社 • 9787302206088 • ¥24.00
资料(推荐书籍)
• • • • 算法艺术与信息学竞赛 清华大学出版社 7-302-07800-9 ¥45.00
资料(推荐书籍)
• 国际大学生程序设计 竞赛例题解系列 • 郭嵩山 • 电子工业出版社
ACM国际大学生程序设 ACM国际大学生程序设 计竞赛
一 ICPC简介 ICPC
ACM与ICPC
• ACM: 美国计算机协会 Association for Computer Machinery • ICPC: 国际大学生程序设计竞赛 International Collegiate Programming Contest • /icpc/
IBM赞助下近几年的发展
4500 4000 3500 3000 2500 2000 1500 1000 500 0 参赛队数 1998 1999 2000 2001 2002 2003 2004 2005
大陆承办亚洲区预选赛的情况
年度 1997~2001 2002 2003 2004 2005 承办学校 上海大学 清华大学 西安交通大学 清华大学 中山大学 北京大学 上海交通大学 北京大学 浙江大学 四川大学 备注
资料(推荐书籍)
• 算法 ~IV(C++实现)——基础、数 算法I~ ( 实现) 基础、 实现 基础 据结构、排序和搜索(第三版) 据结构、排序和搜索(第三版) • 中国电力出版社 • 7-5083-1808-0 • ¥55.00
资料(推荐书籍)
• C++算法(第3版)——图算法 算法( 算法 版 图算法 • Algorithms in C++(Third Edition),Part 5:Graph Algorithms • 清华大学出版社 • 7-302-07251-5 • ¥49.00
ACM竞赛简介和入门
ACM竞赛简介:ACM国际大学生程序设计竞赛是由国际计算机界历史悠久、颇具权威性的组织ACM学会(美国计算机协会)主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛,其目的旨在使大学生运用计算机来充分展示自已分析问题和解决问题的能力。
(网上有更详细的介绍,这里只做个简介)ACM竞赛特点:竞赛中一般有10道题,比赛时间为5个小时,每支参赛队伍由3名选手组成,可以携带诸如书、手册、程序清单等参考资料,对每一道题编完代码后,将代码提交裁判,每一次提交会被判为正确或者错误,判决结果会及时通知参赛队伍。
在规定时间内提交并通过题目数越多排名越靠前。
(时间5小时,题目8~12题,同题目数按所用时间多少排名)ACM题目限制:时间限制(即程序运行所用的时间)空间限制(即程序运行时所开内存的多少)ACM基本要求⏹英语⏹分析理解能力⏹算法⏹编码⏹合作ACM竞赛意义学习编程,并不是为了参加竞赛,ACM竞赛对于我们的意义更多的还是专业能力的提高。
在备战过程中,无论是对自己的编程能力,还是团队合作解决问题的能力,都是一种很好的锻炼机会。
一般而言,每个在做ACM竞赛的学生,他们的编程能力会比较出色。
与数学建模相比,由于ACM竞赛针对的是我们学计算机的同学,所以没有数学建模的比赛规模,但是依旧是国际上最有影响力的大学生竞赛之一。
ACM竞赛入门现在有很多大学有专门为ACM竞赛开设自己的测评网站,上面有很多贴近竞赛的题目。
比如说北大poj,浙大zoj等等。
所以选择一个自己专门练习的网站,我们都用北大的poj,然后开始自己在上面做题,和同学交流经验。
等到回到本部,要是有了一定的实力和基础,张震老师就会对我们进行选拔和组队,最后参加省赛和亚洲的区域赛。
⏹在poj上做20左右道简单的题目,熟悉ACM题目的基本特点。
(这里列出几道相对较简单的题目的题号:1000,1003,1004,1046,1207,1226,1504,1552)⏹熟悉了poj之后,按照poj的题目分类,买一本或借一本算法的书(暨大ACM校队的基本都用机械工程出版社的《算法导论》)开始学习,然后做算法的专题,一般每个专题做10~30道。
ACM基础
ACM/ICPC简介 简介
ACM/ICPC竞赛题目难度大,更强调算法的效率, 竞赛题目难度大,更强调算法的效率, 竞赛题目难度大 竞赛时3人合作 共用一台计算机, 人合作, 竞赛时 人合作,共用一台计算机,非常注重团 队协作精神;很多题目没有成熟的算法, 队协作精神;很多题目没有成熟的算法,旨在考 验参赛队员的创新能力;比赛现场完全封闭, 验参赛队员的创新能力;比赛现场完全封闭,现 场提交程序,现场评判,能客观, 场提交程序,现场评判,能客观,公正地展现参 赛学生的真实水平. 赛学生的真实水平.
最大子段和的DP解法 最大子段和的 解法
int MaxSum(int n, int a[]) { int sum = 0, b = 0; for(int i=1; i <= n; ++i) { if ( b > 0 ) b += a[i]; else b = a[i]; if ( b > sum ) sum = b; } return sum; }
213 314 Output 421 5 2 The output should be 2one integer per line, 623 machine. minimal times of restarting machine. 724 833 943 0
which means the
A+B problem
UsacoGate 是全美计算机奥林匹克竞赛(USACO)的一个训练网站,要 是全美计算机奥林匹克竞赛( )的一个训练网站, 的训练. 参加 USACO 就必须参加 UsacoGate 的训练.每年都有 USACO Spring,Fall,Winter,以及 WinterCamp 的全美竞赛,并且提供网络竞赛. 的全美竞赛,并且提供网络竞赛. 以及 UsacoGate 的难度由浅入深,分了若干个专题,每个专题都有一篇讲座 的难度由浅入深,分了若干个专题, 以及4 道题目供练习(提供在线即时评测系统).个人认为, ).个人认为 以及4~5道题目供练习(提供在线即时评测系统).个人认为,上面的 有些题目比较经典,也有些题目不好, 有些题目比较经典,也有些题目不好,总的来说还是值得已经熟悉程序设 计语言但是对算法和数据结构不太了解的学生去做的. 计语言但是对算法和数据结构不太了解的学生去做的.每道题目后面都有 解答, 程序,建议初学者多看看别人的解答和程序. 解答,附有 C++ 程序,建议初学者多看看别人的解答和程序. /usaco/default.asp 上有 上有USACO上的题目和 上的题目和 Text的翻译. 的翻译. 的翻译
ACM--ICPC竞赛简介
区域赛
各区域还下设赛区(我们实际参加的比赛) 中国一般有4-5个赛区 2009-1010 哈尔滨 合肥 宁波 上海 武汉 2008-2009 哈尔滨 北京 杭州 合肥 成都 2007-2008 南京 长春 北京 成都 2006-2007 北京 上海 西安 2005-2006 北京 杭州 成都
排 名
1 解题数量 2 罚时
竞赛现场
竞赛现场
类似比赛
Topcoder Topcoder高校锦标赛是Topcoder公司主办的以 高校学生为竞赛主体的程序算法设计竞赛,其 高额的奖金以及极具挑战性和趣味性的比赛方 式与比赛试题吸引了全世界最顶尖程序爱好者 的参与。锦标赛由各高校轮流承办, Google Code Jam 全球编程挑战赛
LOGO
ACM/ICPC竞赛
Contents
1 2 3 4 5 6 7
1、ACM/ICPC简介
2、 竞赛模式 3、往年竞赛情况 4、大赛简要规则 5、校内选拔
6、网上训练
7、参考资料
1 ACM/ICPC简介
ACM/ICPC简介:
ACM国际大学生程序设计竞赛 (ACM International Collegiate Programming Contest – ACMICPC) ACM学会主办 (Association for Computer Machinery)
用时:每道试题用时将从竞赛开始到试题解
答被判定为正确为止,其间每一次提交运行结果 被判错误的话将被加罚20分钟时间,未正确解答 的试题不记时。 与其它计算机程序竞赛(例如国际信息学奥 林匹克,IOI)相比,ACM-ICPC的特点在于其 题量大,每队需要5小时内完成8道题目,甚至更 多。另外一支队伍3名队员却只有1台电脑,使得 时间显得更为紧张。因此除了扎实的专业水平, 良好的团队协作和心理素质同样是获胜的关键。
ACM-ICPC规则介绍
【资讯】ACM-ICPCACM国际大学生程序设计竞赛标志ACM国际大学生程序设计竞赛(英文全称:ACM Internati onal Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。
经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。
赛事目前由IBM公司赞助。
简要规则比赛期间,每队使用1台电脑需要在5个小时内使用C、C++、Pascal或Java中的一种编写程序解决7到10个问题。
程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。
而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。
最后的获胜者为正确解答题目最多且总用时最少的队伍。
每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。
例如:A、B两队都正确完成两道题目,其中A队提交这两题的时间分别是比赛开始后1:00和2:45,B队为1:20和2:00,但B队有一题提交了2次。
这样A队的总用时为1:00+2:45=3:45而B队为1:20+2:00+0:20=3:40,所以B队以总用时少而获胜。
与其它计算机程序竞赛(例如国际信息学奥林匹克,IOI)相比,ACM-ICPC的特点在于其题量大,每队需要5小时内完成8道题目,甚至更多。
另外一支队伍3名队员却只有1台电脑,使得时间显得更为紧张。
因此除了扎实的专业水平,良好的团队协作和心理素质同样是获胜的关键。
竞赛流程1.参赛队伍最多由三名参赛队员组成。
2.竞赛中至少命题6题,至多命题10题,试题描述为英文,比赛时间为5个小时。
3.竞赛可以使用的语言:C++、C、Java和Pascal。
大学生程序设计大赛介绍
我的ACM入门指南
ACM/ICPC入门指南ACM简介:ACM:即国际大学生程序设计竞赛。
ACM国际大学生程序设计竞赛由国际计算机学界著名的ACM学会主办,是世界上规模最大、水平最高的国际大学生程序竞赛,每年举办一次。
可以说,ACM国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。
入门篇每个ACMer平时都是靠做题来训练的,现在就以杭州电子科技大学的OJ为例简单介绍一下如何使用OJ系统,在浏览器上输入杭电的网址首先,我们需要注册一个ID,点击Register new ID填写好自己的个人信息之后,点击submit,就可以完成注册了,然后在主页右上角的登陆框输入ID,密码便可以登陆,这个时候点击主页上的 Problem Archive 打开OJ的题库点击题号为 1000 的题目 A + B ProblemProblem Description 一栏写的就是题目的描述,很多初学者一开始对全英文的题目会很不习惯,这是很正常的,多查查字典,很快就可以习惯了,而且也可以提高自己的英语阅读水平、、、、、、、、Input 一栏写的是题目的输入要求,这里提示:每行将会有两个整数 A 和 B,输入进程一直延续到文件读完而结束(也就是要循环输入)Output 一栏写的是题目的输出要求,这里提示:对于每组数据,在一行中输入A+B的值接下来的 Sample Input 就是示例输入数据,而 Sample Output 就是相应的输出结果在读完题目之后,我们就可以在自己电脑上的编译器上编写代码,等编写好代码之后,点击页面中的Submit,接着把代码复制上去,再选择相应的语言完成之后点击Submit,就可以看到OJ系统对我们的程序的判题结果了这里返回了一个 Accepted,也就是说通过了OJ的判断,题目答对了!1000A +B Problem Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 158161 Accepted Submission(s): 50186 Problem Description Calculate A + B.Input Each line will contain two integers A and B. Process to end of file. Output For each case, output A + B in one line.Sample Input 1 1Sample Output 2Author HDOJStatistic | Submit | Discuss | Note#include<stdio.h>int main() {int a,b;while(scanf("%d %d",&a,&b)!=EOF)printf("%d\n",a+b);}而OJ可能会返回的结果总共有:Accepted 通过 Wrong Answer 错误 Compilation Error 编译错误Runtime Error 运行错误 Time Limit Exceeded 时间超出限制Presentation Error 输出格式错误 Memory Limit Exceeded 内存超出限制Output Limit Exceeded 输出了多余的东西OJ的使用基本上就是这样,十分的简单,想要成为一个强大的ACMer的话,赶紧多做题吧 ^_^,在这里同时推荐一些OJ给大家: 杭州电子科技大学的OJ,里面有很多简单的入门题,非常适合初学者/JudgeOnline 北京大学的OJ,是目前国内最具权威的OJ 官方的OJ,里面收录了历届亚洲地区赛和世界总决赛的题目/usacogate2美国信息学奥林匹克竞赛提高篇ACM比赛是涉及到很多算法的,大概包括图论、动态规划、计算几何、数论、搜索等等,如何提高自己相关的知识是十分关键的,当然前提是你首先必须得精通一门编程语言,一般ACM正规的比赛上可以选用的语言有C、C++和Java,但由于ACM比赛很看重时间空间等效率,所以大部分情况下Java是不占优势的,而80%以上的参赛选手使用的语言都是C++,因此在这里向大家推荐一本C++的经典书籍《C++ Primer》(第4版),里面详细地介绍了C++的各种语法和STL等知识,什么时候整本书看完了,理解了,你的C++才算达到基本的水平掌握好一门语言之后,就要开始系统地学习算法知识了,这里推荐《算法设计与分析基础》这本算法书设计的算法知识十分的全面,而且讲的知识比较基础,很容易就可以看懂,适合初学者,By the way,如果你是计算机学院的学生的话,学校会在大三(大四)教授算法课的时候发这本书下来。
ACM 国际大学生程序设计竞赛(ICPC) 规则
竞赛裁判软件(如PC^2)由ACM/ICPC通过亚洲赛区竞赛主任提供。
报到费用 地区预赛报到费用为100美元或800人民币。未缴纳报名费的参赛队不能
参加竞赛。(*)
决赛地点和资助
ACM国际大学生程序设计竞赛决赛由IBM赞助,定于2000年4月15日至19日在美国弗
罗里达州奥兰多Radission Twin Tower举行。
取得参赛资格的通知。
参加地区预赛的参赛队员不要求是ACM协会的学生会员,但参加决赛的参赛队员必
须在决赛前一个月以前成为ACM协会的学生会员。
在教练预先通知赛区报名主席后,每支队伍可以准备一个替补队员,以替换不能或
不愿参赛的队员,但替换之后仍然要保证队伍符合本规则的规定。
赛区比赛开展
赛开始到试题解答被判定为正确为止,其间每一次错误的运行将被加罚20分钟时间
,未正确解答的试题不记时。
请注意赛区竞赛裁判决定解答提交是否正确需要一定的时间。
为了保持赛场的紧张气氛,在适当的时间,会停止对于竞赛结果的公告信息。对于
运行的判决结果仍将及时通知其提交队伍。
本条规则非常重要:参赛队的队号在竞赛前抽签决定,这个队号在裁决软件系统中
公布其名次。每个赛区主席也可在必要的情况下调整本条规则。
裁判组和竞赛命题
裁判长和竞赛赛区主席负责组织裁判组。裁判组的成员以及和裁判组成员关系密切
的人不得担任参赛队伍的教练,一般建议裁判组由来自多个的大学和多个企业的专
业人士组成, 如果可能的话,最好能够组成国际性裁判组。裁判组的规模大小一
举行的地区预赛,每个赛区的第一名队伍自动取得参加决赛的资格。(地区预赛前
的选拔规则参见下一章《地区二级预赛和学校选拔赛》)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本类输入解决方案:
C语法: scanf("%d",&n) ; for( i=0 ; i<n ; i++ ) { .... } C++语法: cin >> n; for( i=0 ; i<n ; i++ ) { .... }
2012-3-26 12
输入第三类:
输入不说明有多少个Input Block,但以某个特殊输入为结束标志。 ex-3
2012-3-26 10
ex-2源代码:
#include <stdio.h> int main() { int n,i,a,b; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&a, &b); printf("%d\n",a+b); } }
2012-3-26 11
ACM程序设计
输入输出格式
2012-3-26
1
ACM题目特点
由于ACM竞赛题目的输入数据和输出 数据一般有多组(不定),并且格式多 种多样,所以,如何处理题目的输入输 出是对大家的一项最基本的要求。这也 是困扰初学者的一大问题。 下面,分类介绍:
2012-3-26
2
一个超级简单的题目(ex-1):
5
输入第一类:
输入不说明有多少个Input Block, 以EOF为结束标志。 参见:ex-1.
2012-3-26
6
ex-1源代码:
#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a, &b) != EOF) printf("%d\n",a+b); }
Problem Description Your task is to calculate a + b. Input Input contains multiple test cases. Each test case contains a pair of integers a and b, one pair of integers per line. A test case containing 0 0 terminates the input and this test case is not to be processed. Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input. Sample input 1 5 10 20 0 0 Sample output 6 30
2012-3-26 3
初学者很常见的一种写法:
#include<stdio.h> void main() { int a,b; scanf(“%d %d”,&a,&b); Printf(“%d”,a+b); }
2012-3-26
4
有什么问题呢?
这就是下面需要解决的问题
基本输入输出
2012-3-26
2012-3-26
7
本类输入解决方案:
C语法: while(scanf("%d %d",&a, &b) != EOF) { .... } C++语法: while( cin >> a >> b ) { .... }
2012-3-26
8
说明:
1.
Scanf函数返回值就是读出的变量个数,如: scanf( “%d %d”, &a, &b ); 如果a和b都被成功读入整数,那么scanf的返回 值就是2; 如果只有a被成功读入整数,返回值为1; 如果a和b都未被成功读入整数,返回值为0; 如果遇到错误或遇到end of file,返回值为EOF EOF是一个预定义的常量,等于-1。
9
2.
2012-3-26
输入第二类:
输入一开始就会说有N个Input Block,下面接着是N个Input Block。 ex-2
Problem Description Your task is to calculate a + b. Input Input contains an integer N in the first line, and then N lines follow. Each line consists of a pair of integers a and b, separated by a space, one pair of integers per line. Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input. Sample input 2 1 5 10 20 Sample output 6 30
2012-3-26 13
ห้องสมุดไป่ตู้
ex-3源代码:
#include <stdio.h> int main() { int a,b;
while(scanf("%d %d",&a, &b) &&(a!=0 && b!=0))
Problem Description Your task is to calculate a + b. Input The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line. Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input. Sample input 1 5 10 20 Sample output 6 30