|
珞珈山水BBS →
电脑网络 →
Linux & Unix →
单文区文章阅读
|
| 单文区文章阅读 [返回] |
|---|
|
发信人: kittig (Never & Ever), 信区: Linux_Unix 标 题: 武汉大学第三届程序设计竞赛通知 发信站: 珞珈山水BBS站 (Wed Apr 13 22:24:48 2005), 站内 【 以下文字转载自 ACM_ICPC 讨论区 】 发信人: dongfangxu (dongfang), 信区: ACM_ICPC 标 题: 武汉大学第三届程序设计竞赛通知 发信站: BBS 珞珈山水站 (Wed Apr 13 18:42:52 2005) 武汉大学第三届程序设计竞赛通知 一、竞赛宗旨 ACM/ICPC,是美国计算机协会(ACM)为推动大学生的计算机教育,自1972年起每年在 全球范围内举行计算机程序设计大赛(ICPC),让世界各国著名大学的优秀大学生在竞赛过 程中充分展示利用计算机分析和解决实际问题的能力。为了进一步提高我校大学生计算机 编程能力,培养学生的团队精神和创新意识,同时也是为了选拔ACM/ICPC校队队员,学校 将于今年4月份举办第三届大学生程序设计竞赛。 二、竞赛目标 促进大学生提高应用计算机分析和解决问题的能力,同时选拔竞赛成绩优异的队员参 加暑期集训,为参加2005年10至12月份在国内高校及国外亚洲赛区举行的ACM/ICPC亚洲区 选拔赛做准备。 三、竞赛组织者 武汉大学教务部考试与竞赛管理办公室、计算机学院、ACM/ICPC协会 四、竞赛时间及地点 时间:2005年4月24日 注:上午 9:00--12:00练习赛 下午 1:00--6 :00正式比赛 晚上 7:00-- 总结大会 地点:武汉大学计算机学院机房(四楼) 五、参赛队组成 1.参赛队员必须是各学院全日制本科生; 2.每支队伍最多可由三名学生组成,学生可跨学院自由组队。 3.竞赛以组队形式报名,不接受个人报名。 六、竞赛规则 1.重点考察选手的算法和程序设计能力,不考察任何Windows编程知识 2.竞赛试题为6--8题;比赛时间为5个小时; 3.竞赛时参赛队员可以携带参考书、手册、程序清单等纸质参考资料,不准携磁 盘、光盘等磁质介质; 4.试题的解答提交通过网络进行,提交正确与否通过网络及时反馈给参赛队; 5.在比赛过程中,每次不正确的提交将被加罚20分钟; 6.竞赛语言为C/C++或Pascal,评测和提交工具为pc2; 7.每支队伍使用一台计算机,所有队伍使用计算机的规格配置完全相同。 七、竞赛成绩 规定的时间内以所提交正确题数量的多少来决定名次,如有二支以上的队提交正确题 数量相同,则以总扣罚时间较少的队伍名次靠前。 八、竞赛奖励 参赛队必须做对两道题目以上(含两道题目)才具有获奖资格。大学生程序设计竞赛 取参赛队总数的15%进行奖励,其中一等奖为5%,二等奖为10%。竞赛获奖队 员将由学校颁发获奖证书,表现出色的学生将成为学校参加全国竞赛的预备队员。 总结大会于当天比赛完毕一小时后在计算机学院办公楼2楼会议室进行 九、报名方式: E-mail至 whuacm2005@163.com 或登陆珞珈山水(bbs.whu.edu.cn)站内信件至dongfangxu ACM协会对接受到的报名材料进行审查和统计后,将于4月20日左右对参赛队员进行最 终确认。 十、报名内容: 参赛队需提供包括队名、队员组成(姓名、性别、学院年级、联系电话、E-mail)等 报名资料。 十一、报名日期: 即日起至2005年4月20日 武汉大学教务部考试与竞赛管理办公室 武汉大学计算机学院 武汉大学ACM/ICPC协会 2005年4月8日 注 意 事 项 1、竞赛共有赛题六至八道。 2、竞赛试题难易程度的分布是随机的。 3、竞赛发放资料含赛题三份、注意事项一份、密码条一张。 4、竞赛允许队员携带和使用纸质资料,但不得携带和使用任何电子资料(如:磁 盘、光盘、U盘、计算器、电子词典和手机等)。 5、竞赛现场不提供稿纸,需要者请自行携带。 6、竞赛过程中三人共同使用一台机器,不得启动其他无关机器。 7、竞赛开始后各队之间请不要互相走动,各队之间请不要相互讨论。 8、竞赛过程中各队之间不得通过网络传送数据。如有发现以舞弊论处,立即取消 两队参赛资格并报请学校相关部门处理。 9、登陆PC2时请输入发放的密码条上的ID和密码。 10、PC2启动后,如无特殊原因请勿中途关闭。 11、PC2退出时请勿异常退出,请单击Exit按钮退出。 12、如果程序调试过程中发生死循环及死机情况,请使用任务管理器关闭,请勿关 机。 13、在竞赛过程中出现任何问题时,请向裁判举手示意。 14、对于试题本身的问题,现场不以作答。 竞赛注意事项 一、竞赛环境 pc^2:可在 http://www.ecs.csus.edu/pc2/,查阅使用方法和下载软件。 编译器、集成开发环境和平台:待定。请关注珞珈山水BBSACM_ICPC版面通知。 二、参考资料 1)实用算法的分析与程序设计 吴文虎主编 电子工业出版社 2)算法艺术与信息学竞赛 刘汝佳 黄亮著 清华大学出版社 3)算法导论(第二版 影印版) 高等教育出版社 4)计算机算法设计与分析 王晓东编著 电子工业出版社 5)国际大学生程序设计竞赛辅导教程 北京大学出版社 6)计算几何-算法分析与设计 周培德著 清华大学出版社 7)组合数学(原书第三版)(美)Richard A.Brualdi著 机械工业出版社 8)图论及其应用 卢开澄 卢华明著 清华大学出版社 9)金牌之路竞赛解题指导-高中计算机 陕西师大出版社 三、相关网址 国内: 浙江大学ACM网址( http://acm.zju.edu.cn) 北京大学ACM网址( http://acm.pku.edu.cn) 武汉大学、北京大学、南京大学、上海交大、中山大学BBS的ACM/ICPC讨论区 国外: 西班牙网站( http://acm.uva.es) 俄罗斯站点( http://acm.timus.ru) 四、竞赛提示: 题目中所给数据,仅为样例数据。裁判所用数据称为测试数据,一般要比样例数据情 况更多,数据量更大。裁判是根据程序在测试数据上的运行结果,判断程序对错并给出判 罚的。所以,仅仅通过样例数据是不够的,竞赛队员必须考虑题目中所有可能的数据情况 ,才能通过最终的测试数据。 ACM/ICPC竞赛规定:输入通过文件输入,每个题目均会给出输入数据文件的文件名。 输出是标准输出,也就是屏幕输出。只有屏幕输出结果和正确输出结果完全一致,才能认 为该程序通过测试,是正确的;否则,裁判会根据程序输出的情况,给出不同的判罚。判 罚有以下几种类型:Accepted,Wrong Answer,Output Format Error,Runtime Error, Time Limit Exceed,Compile Error,Output Limit Execcd等。它们的意义和可能的原因 逐个解释如下: 1)Accepted:程序正确。恭喜你做对了一题。 2)Wrong Answer:答案错误。一般可能得到这个判罚的原因是:程序算法错误、特殊情况 没有考虑等。 3)Output Format Error:输出格式错误。那么也要恭喜你,你的程序算法完全正确,只是 输出格式和正确答案不一致,请仔细检查程序的输出和题目对输出的要求,一般只是空格 、换行符等的输出错误。 4)Runtime Error:运行时错误。程序运行时出现错误,一般原因是:除零,指针越界,数 组下标越界,堆栈溢出等等。 5)Time Limit Exceed:超时错误。程序运行时间超出题目规定的最长时限。一般原因是: 算法错误,程序逻辑错误,欲从标准输入读入等。 6)Compile Error:编译错误。程序根本没有通过编译,请检查程序的语法错误。 7)Output Limit Execcd:输出数据超出限制。程序输出数据量太大,一般原因是:存在无 限循环输出,文件结束判断条件错误,算法错误等。 五、样题解答 Problem Calculate a + b Input File(a.in) 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 2 7 Sample Output 6 9 Sample Solution 1)Using C++: #include <iostream> #include <fstream> using namespace std; int main() { int a,b; ifstream infile(“a.in”); while(infile >> a >> b) cout << a+b << endl; infile.close(); } 2)Using C: #include <stdio.h> int main() { int a,b; FILE *fp; fp = fopen(“a.in”,“r”); while(fscanf(fp,”%d %d\n”, &a, &b) != EOF) printf(“%d\n”,a+b); fclose(fp); } 3)Using PASCAL: program Sample_problem(Input,Output); var a,b:Integer; begin assign(input,”a.in”); reset(input); while not eof(Input) do begin Readln(input,a,b); Writeln(a+b); end; close(input); end. 以下为裁判所用测试数据和正确输出: Judge’s Input: 25 69 -50 50 -110 60000 0 0 -10 –10 Judge’s Output: 94 0 59890 0 -20 六、常见错误 由于环境不熟悉可能造成的一些错误,以C语言为例,解释如下: 1)使用标准输入,读入数据。 如:while (scanf(“%d %d”,&a,&b)!=EOF) printf(“%d\n”, a+b); 错误分析:将会得到超时错误。因为裁判是根据程序在测试数据上的执行结果给出判罚的 ,这个执行过程是机器自动完成,裁判不能干预,所以程序将一直等待键盘输入直到超时 。 2)输入数据之前,打印提示信息。 printf(“please input a and b:\n”); while (fscanf(fp,“%d %d”,&a,&b)!=EOF) { printf(“%d\n”, a+b); printf(“please input a and b:\n”); } 错误分析:将会得到输出格式错误的信息。所有数据均在输入文件中给出,裁判根据标准 输出判断程序对错。上述程序在题目样例数据上运行后的标准输出结果为: please input a and b: 6 please input a and b: 9 3)使用自定义的输入格式。 while(fscanf(fp,”%d,%d”, &a, &b) != EOF) printf(“%d\n”,a+b); 错误分析:可能得到答案错误。因为读入格式和测试数据格式不一致,导致a,b的读入结 果不对。 4)输出格式错误。 while(fscanf(fp,”%d %d”, &a, &b) != EOF) printf(“ %d\n”,a+b); 错误分析:将得到输出格式错误。因为在输出数据前多输出了一个空格。 5)使用绝对路径打开文件。 fp = fopen(“c:\a.in”,“r”); 错误分析:将得到运行时错误。因为测试数据和参赛队员的程序是放在同一个目录下在裁 判机上运行的,而这个目录的绝对路径和参赛队自己的数据文件目录路径是不一致的,所 以应当在程序中使用相对路径打开文件,而不能使用绝对路径。 -- ※ 修改:·dragonflywww 于 Apr 13 20:36:27 修改本文·[FROM: 202.114.70.*] ※ 来源:·珞珈山水BBS站 http://bbs.whu.edu.cn·[FROM: 222.20.242.*] |
| [返回单文区目录] |
|
|