赛事体系官方资料里,不存在ICPCN这个标准缩写。ICPC全称International Collegiate Programming Contest,中文名称国际大学生程序设计竞赛,早期由ACM主办,现在由ICPC基金会运营,老文档习惯写为ACM-ICPC。名称末尾多出的n,大概率属于输入笔误,或是校内选拔赛自定义的非正式简称,下面介绍的是ICPC赛事本身以及对应的参赛年龄规则。
ICPC采用团队参赛模式,每支队伍三名选手,共用一台电脑,在五小时时间内完成8至13道算法题目。赛事分为区域赛与全球总决赛两个层级,区域赛举办时间集中在每年九月到十二月各个赛站,全球总决赛安排在次年上半年。队伍以高校为单位报名,一所大学可以在单场区域赛派出多支队伍,但是最终仅有一支队伍能获得全球总决赛参赛资格。

关于年龄限制,ICPC官方规则不是简单划定一个最高年龄,判定方式相对复杂。选手需要是报名院校的正式在读学生,并且满足两项条件其中任意一项:开始高等教育的时间不早于指定年份,或是出生年份不早于指定年份。拿2025-2026赛季举例,区域赛官方规则要求,2021年及之后开始高等教育,或者出生于2005年及之后,两项条件满足其一就符合资格,不需要同时达标。
这套判定方式比单纯设置年龄上限更加灵活。高中毕业直接升学的学生,哪怕年纪很小,只要入学时间符合要求就能参赛。部分学生因为服兵役或者间隔年推迟入学,实际年龄偏大,只要入学时间满足条件,依旧拥有参赛资格。ICPC官方将这套判定逻辑称为“Eligibility Decision Tree”,每个赛季对应的基准年份会逐年向后滚动。
国内高校校内选拔通知中,经常会出现一句更通俗的描述:参赛时距离高中毕业时间不超过5年。这个说法和官方规则本质一致,只是描述角度不同。大多数人高中毕业后直接进入大学,中间没有空档期,所以“高中毕业不超过5年”和“入学时间不超过5年”在实际报名审核时基本等同。
除资格年龄之外,参赛次数同样存在限制。一名选手最多参加两次全球总决赛,区域赛参赛上限为五次。参赛次数采用累计统计,不会每个赛季重置。如果选手已经参加两届总决赛,就不能继续报名区域赛;区域赛参赛次数达到五次,也不再具备正式队员参赛资格。这条规则用来减少长期参赛的竞赛老手,维持赛事人员流动性。
部分特殊情形下,超出年龄限制也有机会参赛。ICPC区域赛规则写明,选手不满足年龄要求,满足特定条件依旧可以合法参赛。对应的要求为,学生需要证明学业中断存在合理理由,同时教练向ICPC资格委员会提交说明,证实这名选手参赛不会给队伍带来不公平优势。申请需要走petition流程,交由ICPC资格委员会审核。Codeforces平台曾经讨论过一个案例,一名33岁学生通过petition拿到参赛资格,但后续发现教练提交申请材料时,隐瞒该选手长期从事竞赛教学、赛题准备的相关背景,引发大量争议。这件事说明petition申请通道真实存在,但是审核标准严格,一旦被查出材料隐瞒信息,后果会比较严重。
疫情期间赛事规则增加过临时豁免条款。2020/21赛季线上区域赛不计入五次区域赛参赛限额,2021/22、2022/23两个赛季合并算作一次参赛记录。到2025-2026赛季,这些临时规则全部取消,受影响最大的是2020年入学,到2025年刚好读完十个学期的学生群体,其中一部分选手区域赛参赛次数刚好达到五次上限,失去最后一个赛季参赛资格。ICPC官方没有针对这项调整给出详细解释,竞赛社区争议主要集中在时间节点问题,不少选手之前按照旧规则规划参赛安排。
年龄下限方面,ICPC没有硬性规定选手必须年满18周岁。不过全球总决赛举办地在美国,签证办理、赛事注册环节可能会有成年相关要求。Codeforces社区讨论里提到“所有选手在总决赛举办时必须年满18岁”,该说法更像是某道竞赛题内的设定,并不是ICPC官方原文规则。区域赛层面,如果高中生已经进入高等教育阶段学习,理论上可以参赛;但国内高校校内选拔一般只接收本校在读学生,高中生没有报名渠道。
实际报名参赛的时候,选手资格初步判断由教练和学校负责。ICPC要求每支队伍配备在职教师作为教练,由教练核验队员参赛资格。如果个人情况处于规则边缘,例如入学时间卡在基准年份、或者存在休学经历,建议提前和教练沟通,由教练对接ICPC资格委员会确认,不要仅凭字面规则直接提交报名。一旦提交之后被系统校验拦截,再去补救会耽误时间。