ACM-ICPC及连载内容简介

有关ACM-ICPC赛事本身的知识请直接前往wiki,在此就不做额外说明了。

对于信息科学,国内乃至国际知名的竞赛大概有两个。除了ACM-ICPC,另一个是IOI国际信息学奥林匹克,后者主要面向中学生举办,内容上也比ACM层次稍浅。在中国,计算机普及教育从上世纪70年代末至80年代初开始,逐渐由面向少数科研专家扩展到基本覆盖全国中小学校,信息学竞赛的受关注度也逐渐增加,包括全国青少年信息学奥林匹克竞赛NOI、全国青少年信息学奥林匹克联赛NOIP以及ACM亚洲区域预赛等众多大型赛事的影响力也在稳步提升。

关于组织信息学竞赛的目的,固然是要继续推进计算机教育的深入普及,在一些重要赛事尤其是像ACM总决赛这样的顶尖赛事中,寻找和发现未来可能的顶级计算机专家也同样受人瞩目。

但是,从近年来尤其是近十年以来各类赛事的发展道路来看,由于创新含量匮乏,再加上诸如ACM等拥有长达30多年历史的老牌赛事很难推陈出新,是否能真正培养出未来的科学家也越来越令人担忧。目前比较普遍的一种情况是,针对竞赛本身的培训愈加严谨,选手水平每届都有较大提高,但通过竞赛能提供给人的信息却未能产生适应时代的效果。

尽管如此,无论如何学习ACM都是当前有志于深入计算机程序设计、算法分析与设计的同学一条明智且正确的选择。通常的建议是,如果你的数学和英语基础较好,那么尽量在刚进入大学时就直接接触ACM,如果相反的话,最好是先花时间奠定基础,怀揣深入学习的目的体验ACM的乐趣,尽管竞赛的意义对你来说已经变得并不重要了(部分“神童”可以忽略,但事实证明不断积累总不是一件坏事)。

 我们收集和连载有关ACM竞赛以及算法设计方面知识的主要目的是,通过共享目前应用广泛的算法设计方法,及其普遍原理,深入大家对程序设计内涵的理解,从而方便今后学习更加高端的信息学知识。

 连载的内容主要分为以下几个部分,常用数据结构分析,常用算法分析,ACM输入输出格式,高级设计和分析技术,高级数据结构分析,组合博弈算法等,在实际应用过程中,我们可能将根据实际情况进行一些内容调整。需要提前说明,本站提供的算法思想或伪代码描述仅供自学和查阅使用,并不涉及任何侵权问题,如有异议,请立即与我们取得联系。