跳到主要内容

ACM 集训队

ACM 集训队是一个完全由本科生组成的竞赛团队。主要参加 ICPC、CCPC、天梯赛、蓝桥杯等算法竞赛。

欢迎加入 ACM 新生咨询 QQ 群:1145612785

选拔方式

ACM 集训队面向全校大一新生招新(揭阳校区单独招新)。这里列出 2022 年的时间表(2023 年的后续更新):

  • 10 月 7 日:宣讲会
  • 10 月 23 日:月赛
  • 10 月 22 日到 11 月 19 日的每周六:公开课
  • 11 月 26 日:新生赛初赛(线上赛,前 100 人进入决赛)
  • 12 月 2 日:新生赛决赛(前 24 名进入 ACM 集训队)

主要考察范围为公开课讲到的知识点,罗列如下:

  • 了解算法复杂度
  • 基本算法
    • 尺取
    • 前缀和
    • 差分
    • 贪心/暴力
  • 动态规划
  • DFS
  • BFS
  • 博弈论
  • 数论

新生赛题面为中文,比赛时长一般为 4 小时。往年新生赛题目可以在牛客竞赛搜索得到

除了月赛和新生赛,集训队每年春季还会面向全校举行校赛。在校赛中超过现役队员也有机会加入集训队。

校内训练和组队

寒假将会面向 ACM 集训队新生和预备役(未能在新生赛进队但仍然有兴趣参加蓝桥杯等个人比赛的学生)开展讲课和训练。在下学期会举行一系列集训队内部排位赛以及一次面向全校所有学生的校赛(都为个人赛)。校赛结束后将根据排位赛和校赛情况对集训队新生排名并组队。原则上组队应强强联合。

比赛介绍

需要注意的是,可以个人参加(也就是不需要进集训队就能报名)的学校认定的一类竞赛目前只有蓝桥杯和 RoboCom CAIP 编程设计赛道。

ICPC/CCPC

由于 CCPC 各种方面都模仿 ICPC,下面主要介绍 ICPC.

以下内容提取自 ICPC 官网 ICPC Regional Rules for Regionals 2023/24,有英语阅读能力建议阅读原文。

  • 大赛语言为英语所有书面竞赛材料均为英文。当一个英语术语可能有多种解释时,必须对其进行定义,以确保所有参赛者都能明确其含义。
  • 至多三个来自同一所大学的选手组成一个队伍。参赛选手按照问题写出对应的代码。提交代码后会当场给出评测结果。在封榜前也可以看到其他队伍的评测结果。通常比赛结束一小时前封榜,封榜后只能看到自己队的评测结果。
  • 根据解决问题的数量进行排名。解题数量相同的参赛队按总罚时最少排序,总罚时相同时按最后一次被接受的运行的最早提交时间排序。总罚时是每个问题的罚时总和。解出的问题的罚时 = 从比赛开始到第一次 Accepted 所用分钟数 + (20 * 在第一次 Accepted 前除编译错误以外不成功的提交数)。未解决的问题不耗时。
  • 区域比赛有八个锦标赛:ICPC非洲和阿拉伯锦标赛、ICPC亚洲东部锦标赛(注:国内学校属于这个东亚赛区)、ICPC亚洲太平洋锦标赛、ICPC亚洲西部锦标赛、ICPC欧洲锦标赛、ICPC拉丁美洲锦标赛、ICPC欧亚北部锦标赛和ICPC北美锦标赛。
  • 区域赛的编程语言包括C和C++。 也可使用其他编程语言。(注:也即不强制要求包含其他语言) ICPC世界总决赛的编程语言为Java、Kotlin、Python和C/C++。

相关链接:

蓝桥杯

请先阅读第十四届蓝桥杯大赛章程(个人赛)。下面是一些要注意的地方:

  • 蓝桥杯一般在每年的 10-12 月报名,分为院校报名和个人报名。需要详细了解的同学可加学校非官方交流 QQ 群:550444630.
  • 据网上流传的消息,蓝桥杯奖项认可度较低。但是对于转专业和保研的同学来说用处很大。
  • 往年获奖名单可以在蓝桥杯官网查阅。
  • 往年蓝桥杯真题可以在这里找到。

集训队历年获奖情况

各类算法竞赛往年榜单可以在 RankLand 查看。下面是去年的情况,不完全统计:

  • ICPC 2022
    • 沈阳 银牌x1
    • 西安 铜牌x1
    • 合肥 铜牌x3
    • 杭州 银牌x1 铜牌x2
    • 南京 银牌x2 铜牌x1
    • EC Final 铜牌x1
  • CCPC 2022
    • 桂林 铜牌x2
    • 威海 铜牌x1
    • 广州 铜牌x1
    • 绵阳 铜牌x1
    • 女生赛 铜牌x1

为什么计院新生都应该尝试 ACM 新生赛

  • 零基础新生入门的第一步是学 C/C++,而 C 语言程序设计正好就是大一开学就要学的一门课,可以提前打下基础。
  • 算法题训练思维,让你设计出更加高效的程序,对于以后计算机课程的学习都很有帮助。
  • 很多国内外大厂招聘时都会考察算法设计能力,对于求职有很大帮助。
  • ICPC/CCPC 等算法竞赛是最透明公正的竞赛之一。

我应该加入 ACM 集训队吗?

  • 由于 ACM 竞赛赛制特点,三人小队乃至整个集训队可以说是“有福同享,有难同当”:三人队要拿奖牌一起拿,要打铁一起打铁;集训队被每年被分配到的参赛名额也与上一年出战队伍表现挂钩。集训队队伍一般在确定后不会变动。所以,团队需要每个成员的付出。
  • ACM 竞赛是三人组队赛,队内交流配合非常重要。必须有团队意识。
  • ACM 竞赛难度很大,进队以后要做好把所有课外时间花在这上面的准备。否则既拖累队友也浪费自己时间。

简而言之:如果你除了打比赛以外还有做其他事(比如科研或者卷绩点)的意向,那么你需要慎重考虑自己是否有能力安排好时间。

如果你有申请出国留学的意向,那么需要注意国内的大多数竞赛在国外招生官眼里含金量较低(打 World Final 这种世界级比赛的另说)。如果想要在国内就业那么有奖牌还是非常吃香的。

ACM 协会

ACM 集训队是工作室性质组织,主要任务是参加各大算法竞赛。而 ACM 协会是社团组织,主要负责举办校内比赛(出题工作除外,由集训队负责)和为集训队宣传。两个组织并非同一个,后者服务于前者。ACM协会招新与ACM集训队招新无关

新生赛前每周都会有集训队队员为 ACM 协会新生讲公开课上的知识,公开课由 ACM 协会技术部新生负责上课。

招新时间

开学后会进行线上一面以及线下二面,请留意 ACM 咨询群消息。

一些 Q&A

我该用什么软件写代码?

IDE (integrated development environment, 集成开发环境) 通俗地理解就是你写代码和编译运行的那个软件。对于零基础初学者推荐使用小熊猫C++.

(IDE 不是编译器!IDE 负责在背后帮你运行编译器。C/C++ 主流编译器目前只有三个:clang、gcc和msvc.)

在哪里刷题?

进 ACM 协会需不需要基础?

理论上不需要,不过也和与你一起面试的同学的水平有关。由于招新名额有限,会优先考虑更优秀的同学。不过基础并不局限于打代码。幽默风趣、文笔好、擅长社交、会画画等也可以作为优势。不同的部门有不同的需求。

加入 ACM 协会有什么福利?

协会每年有社团时长20h和学生工作加分,每个部门都会进行算法相关的入门基础培训,帮助协会新生在新生杯获得更好的成绩。

轶事

“ACM 集训队”名字中的 “ACM” 是美国计算机学会 (Association for Computing Machinery) 的缩写。这跟集训队有什么关系呢?其实原本 ACM 每年赞助 ICPC 也即国际大学生程序设计竞赛,所以称其为 ACM-ICPC. 如今 ACM 已经不再赞助,也就被从名字里去掉了。“ACM” 现在有了很多种含义:计算机学会本身、算法竞赛的统称以及特指 ICPC.