华中科技大学第十一届“飞航杯”校园科技节参赛手册1欢迎词各位来宾、各参赛队员:在华中科技大学校团委、电气与电子工程学院和电工电子科技创新中心老师的支持下,经过全体组织者和参与者的齐心协作,华中科技大学第十一届大学生科技节之ACM程序设计大赛正式开始了!科技是时代发展最强劲的动力。此次是我院第五次承办华中科技大学的校园ACM程序设计大赛,希望通过此次活动在学校掀起一股ACM热潮,让更多同学了解并走进ACM,同时为今后的国际大赛选拔人才。“挑战成就希望,创新点亮梦想。”希望所有参赛选手冷静发挥,沉着应对,发扬团队合作精神,通过竞赛提高水平。相信通过我们的共同努力,本次竞赛必将成为我校计算机程序设计人才的一次盛会!再次欢迎和感谢各位嘉宾的光临以及各位参赛队员的积极参与,预祝本次ACM程序设计大赛取得圆满成功!ACM大舞台,编程编梦编未来!祝所有参赛选手载誉而归!ACM/ICPC赛事简介..................................................................1活动意义.......................................................................................1参赛对象与比赛规则...................................................................1评分细则与排名方式...................................................................2赛事日程安排...............................................................................3奖项设置.......................................................................................4报名方式.......................................................................................5注意事项.......................................................................................5附:竞赛网站使用方法.......................................................................6常用算法简介...............................................................................7竞赛真题.......................................................................................8参赛队伍.....................................................................................11关于新人参赛的鼓励措施.........................................................141一、ACM/ICPC赛事简介ACM/ICPC(ACMInternationalCollegiateProgrammingContest,国际大学生程序设计竞赛)是由国际计算机界历史悠久、颇具权威性的组织ACMAssociationforComputingMachinery,国际计算机协会)主办的,世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。采用组队参赛的形式,由三名队员组成一支队伍参赛。比赛时三名队员只使用一台电脑,整个比赛时间为5个小时。二、活动意义:为将在国际上具有广泛影响的ACM/ICPC世界大学生程序设计竞赛在校园作进一步推广,培养我校学生的创造力,团队合作精神和创新意识,为我校广大计算机编程爱好者提供一个展示实力和交流的平台。我们在校团委的指导下组织此次比赛,希望让更多的同学参与该项赛事,进一步提高我校学生的计算机编程的兴趣和水平。同时通过全面的宣传和培训,使同学们获得更多的编程知识。并借助本次活动,建设自己的ACM网上答题平台,使广大同学在平时也能通过网上答题提高自己的编程水平,为我校ACM团队培养高质量人才创造机遇。三、参赛对象与比赛规则:参赛对象:凡学校在册本科生均可参加。比赛规则:1)本次比赛以三人组队参赛以1-3人为一队),小组成员共用一台电脑,预赛和决赛的时间为五小时,试题为英文。所使用的计算机语言为C,C++,JAVA中的任何一种。初赛于11月20日通过网络在线进行。决赛拟定于12月中旬在指定地点进行。2)赛时提供相同的硬件环境,操作系统为MicrosoftWindows2000,对使用何种计算机语言不作要求。重点考察选手的算法和程序设计能力,不2需要任何Windows界面编程工作。3)选手可以携带任何书籍、手册以及程序清单,但不得携带任何磁介质、光盘、计算机、计算器等;但不得带任何电子类工具入场包括电子词典、手提电脑、U盘等)。4)实施黑盒测试,选手通过网络提交程序,由于决赛是在一个局域网环境下进行,决赛时选手不得访问局域网内任何与竞赛无关的资源。5)评委负责将结果正确或出错的类型)尽快返回给选手,不提供任何额外帮助;选手不得在赛场大声喧哗,影响其他选手;不得故意损害竞赛设备。四、评分细则与排名方式参赛选手通过我们的竞赛系统提交源代码。实时黑箱测试。所有的提交都会在同一个环境下进行测试,以确保公平。评分指标由Solved和Score组成。其中Solved为解决了的问题数,Score为罚分。排名将实时动态生成:Solved数越大的排越前面;Solved数相同的,Score越小的排越前面;若Solved和Score数相同的,则名次并列。1、评分细则:对于一次源代码的提交,我们的系统会自动记录下提交的时间。五分钟内会返回黑箱测试的结果。结果分为以下几类:YES:表示该题完全通过黑箱测试,即你程序的输出结果跟标准答案完全一样。NO-WrongAnswer:表示有测试数据使得你的程序得不到正确的结果。NO-TimeLimitExceeded:表示你的程序还没有通过所有测试数据就超时了。NO-RunTimeError:表示你的程序在运行期间崩溃了。3只要是属于NO的结果,都表示未完全通过测试。对于一道题目,如果获得结果YES,则Solved加1,Score加上提交该题的时间离比赛开始时间的分钟数。对于获得YES的题目,会产生罚分Penalties):该题每一次结果为NO的提交,会使Score增加20。对于没有获得YES的问题,将不会产生任何罚分。对于一道已经获得YES的题目,该选手于该题的任何后续提交将不再测试。2、排名方式:解题数量多的选手名次靠前;如果多名选手解题数量相同,则根据总用时加上惩罚时间进行排名,用时少的选手排名靠前;总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间而成;每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次错误的运行将被加罚20分钟时间;未正确解答的试题不记时。五、赛事日程安排宣传与报名2010年10月23日在紫菘路口进行现场宣传报名2010年10月24日在韵苑和沁苑进行现场宣传报名培训讲座2010年10月30日进行ACM大赛新闻发布会暨首期培训讲座2010年10月30日-11月12日举办五期座培训,地点待定网上预赛2010年11月20日网上初赛具体时间请关注白云黄鹤Algorithm版现场决赛42010年12月中旬现场决赛,具体时间、地点待定比赛前期培训算法讲座安排:注:讲座的具体时间地点如有变动,我们会短信通知组长每期讲座结束后,讲座内容都将放在大赛网站上供同学们下载六、奖项设置本次大赛的获奖数量前所未有地增加到了31名!奖项设置有:特等奖:奖品及证书1名奖金800元一等奖:奖品及证书5名奖金300元二等奖:奖品及证书10名奖金200元三等奖:奖品及证书15名奖金100元获奖条件:队伍中不含有参加过ACM区域赛或以上级别比赛的成员讲期讲座名称讲座时间主讲人讲座地点第一讲比赛环境新闻发布会后洪泽华西九502第二讲搜索与图论11月02日星期二(晚上)李东旭待定第三讲排序与检索11月05日星期五(晚上)许成待定第四讲贪心与动态规划11月09日星期二(晚上)杨晓彬待定第五讲数论与组合数学&考前答疑11月12日星期五(晚上)何剑待定5七、报名方式1、在预赛开始之前,每一参赛队选手均可登陆,注册参赛ID;2、10月22、23日分别在紫菘、韵苑的宣传现场,10月30日的新闻发布会现场,以及各场培训讲座现场,各参赛队选手均可直接向组委会联系人提交相同的报名表。八、注意事项1、请参赛选手仔细学习竞赛网站使用方法,以便于选手更快的适应比赛环境;2、竞赛网站将为参赛选手提供题库,选手在注册之后就可以自行练习;3、请参赛选手注意留意大赛网站有关比赛的相关通知。如对大赛有任何疑问,欢迎与我们联系!!大赛网址:负责人:(请在非上课时间联系)罗清璟1507241042168421王思聪13995614298614298挑战成就希望创新点亮梦想ACM程序设计大赛期待您的参与!电气与电子工程学院分团委学生会2010年10月6附:1.竞赛网站使用方法1.登录;2.未注册过的同学点击屏幕右方的“注册新账号报名”,进入注册界面,在相应提示下进行注册报名。请保证邮箱的正确性,同时要求邮箱地址与报名表上的一致;3.填写相关信息后,点击提交完成注册;4.用注册好的账号和密码登录,可以点击页面上的链接进入相应的分页面;5.比赛将会显示在contest上,比赛开始可以点击比赛进入比赛;6.比赛开始后ranklist将会自动更新,可以看到自己的排名;7.Standing和statistics上有比赛进行中的题目提交次数之类的信息;8.提交程序时点击SUMIT,注意选择使用的编程语言,Java或者g++,使用C或者C++的请使用g++选项;9.题目提交结果将会有accept代表通过;wronganswer代表结果出错;compliererror代表程序无法编译成功;timelimitedexceed代表程序运行时间超过题目规定时间。72.常用算法简介1)贪心算法贪心算法又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。2)排序算法所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。常用的排序算法包括:插入排序、冒泡排序、选择排序、快速排序、堆排序、归并排序、基数排序、希尔排序等。3)搜索算法搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。4)动态规划算法多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义,称这种解决多阶段决策最优化问题的方法为动态规划方法。动态规划的基本模型如下:(1)确定问题的决策对象;(2)对决策过程划分阶段