跳转至

CCPC/ICPC

此小节参考 OI-wiki

赛事介绍

ICPC

ICPC(英文:International Collegiate Programming Contest,中文:国际大学生程序设计竞赛)由 ICPC 基金会(英文:ICPC Foundation)举办,是最具影响力的大学生计算机竞赛。由于以前 ACM 赞助这个竞赛,也有很多人习惯叫它 ACM 竞赛。

ICPC 主要分为区域赛(Regionals)和总决赛(World Finals)两部分。

官网地址:https://icpc.global

CCPC

官网地址:https://ccpc.io

中国大学生程序设计竞赛。

赛制介绍

一般是三个人组成一队使用一台机器,在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果错误会有 20 分钟的罚时,错误次数越多,加罚的时间也越长。每个题目只有在所有数据点全部正确后才能得到分数。比赛排名根据做题数来评判,做题数相同的,根据总用时来评判。总用时是每题用时的和。每题的用时是从比赛开始到做出该题的分钟数与该题的罚时之和。

一些 ICPC 相关赛事中,比赛结束前一小时进行封榜,封榜后的提交和排名将无法被其他选手看见。

在 ICPC 相关赛事中,选手允许带一定量的纸质资料。

除 ICPC 和 CCPC 外,众多比赛也采用该赛制,如 LeetCode 周赛及全国编程大赛、牛客小白赛练习赛挑战赛等。

赛季赛程

  • ICPC/CCPC 网络赛(8 月底至 9 月初)
  • ICPC/CCPC 区域赛(9 月底至 11 月底)
  • ICPC EC Final/CCPC Final(12 月中旬)
  • ICPC World Finals(次年 4 月至 6 月)

如何参加

ICPC/CCPC 赛事是无法个人参加的,需要加入学校的 ACM 校队。

对于自己编程水平有一定自信的同学(参考蓝桥省一+)可以关注 QQ 群 526350936,在暑假会组织下一个学年的校队选拔赛。选拔赛的名额一般等于上一年退出的名额,由以下两部分构成:

  • 退役的高年级学生
  • 上一年只拿到铜牌的队伍(被称作重铸)

选拔难度取决于当年的选拔比例。

如何准备

可以在以下网站中练习:

  • HDU Online Judge 始于 2005 年,杭州电子科技大学在线评测系统,有多校训练的题目。
  • 洛谷:始于 2013 年,社区群体庞大,各类 OI 的真题和习题较全。提供有偿教育服务。
  • POJ:北京大学在线评测系统,始于 2003 年,国内历史最悠久的 OJ 之一。内有很多英文题,既有基础题,也有值得一试的好题。
  • PTA(拼题 A):始于 2016 年,浙江大学衍生的杭州百腾教育科技有限公司产品。
  • AtCoder:日本 OJ,日文版里会有日本高校的比赛,英文内不会显示。题目有趣,质量较高。
  • Codeforces:俄罗斯 OJ,始于 2010 年,创始人是 Mike Mirzayanov。有多种系列的比赛,并支持个人出题、申请组织比赛。题目质量较高。

训练资源

书籍

  • 刘汝佳系列
  • 《算法竞赛进阶指南》- 李煜东
  • 《啊哈算法》- 纪磊
    • 面向初学者或有初步兴趣的人群,有幽默配图。
  • 深入浅出系列
    • 《深入浅出程序设计竞赛 - 基础篇》- 洛谷网校教研组
  • 一本通系列
    • 《信息学奥赛一本通》- 董永建
    • 《信息学奥赛一本通 - 提高篇》- 黄新军,董永建
    • 《信息学奥赛一本通 - 高手训练》- 黄新军,董永建
  • ACM 国际大学生程序设计竞赛系列
    • 《ACM 国际大学生程序设计竞赛系列 知识与入门》- 俞勇
    • 《ACM 国际大学生程序设计竞赛系列 算法与实现》- 俞勇
    • 《ACM 国际大学生程序设计竞赛系列 题目与解读》- 俞勇
  • 《算法竞赛入门到进阶》- 罗勇军,郭卫斌
  • 《算法导论》第三版 - Thomas H.Cormen/Charles E.Leiserson/Ronald L.Rivest/Clifford Stein
    黑书,大学经典教材。英文版原名Introduction to Algorithms
  • 《具体数学》第二版 - Ronald L. Graham/Donald E. Knuth/Oren Patashnik
    英文版原名Concrete Mathematics
  • 《组合数学》第五版 - Richard A.Brualdi
    英文版原名Introductory Combinatorics
  • 《挑战程序设计竞赛》全套 - 秋叶拓哉,岩田阳一,北川宜稔 通俗易懂。
  • 《算法概论》- Sanjoy Dasgupta/Christos Papadimitriou/Umesh Vazirani
    • 提纲挚领,但内容较少。
  • Legend-K 的数据结构与算法的笔记
  • acm-cheat-sheet
  • Competitive Programmer’s Handbook- Antti Laaksonen
    • 作者花了三年个人时间完成。面向算法竞赛,覆盖面广,详略得当。
  • 《挑战编程:程序设计竞赛训练手册》- Steven S. Skiena/Miguel A. Revilla
  • 《C++,挑战编程——程序设计竞赛进阶训练指南》- 邱秋
  • 《数据结构(C++ 语言版 第 3 版)》- 邓俊辉
    • 建议随配套课程、配套课件和习题解析一起使用。
  • 《计算几何:算法与应用》- 伯格(Berg,M.D.)著,邓俊辉 译
    英文版原名Computational Geometry: Algorithms and Applications
  • 《Handbook of Data Structures and Applications, 2nd Edition》
    • 由许多著名教授如 Sartaj Sahni、Hanan Samet、Weiss 等合著,内容较多,建议有一定基础的数据结构爱好者阅读。
  • 算法详解 系列
    • 面向有语言基础的初学者的教材,建议同配套课程一起使用
    • 《Algorithms Illuminated, Part 1: The Basics》- Tim Roughgarden
    • 《算法详解,卷 1:算法基础》- 徐波 译
    • 《Algorithms Illuminated, Part 2: Graph Algorithms and Data Structures》- Tim Roughgarden
    • 《算法详解,卷 2:图算法和数据结构》- 徐波 译
    • 《Algorithms Illuminated, Part 3: Greedy Algorithms and Dynamic Programming》- Tim Roughgarden
    • 《Algorithms Illuminated, Part 4: Algorithms for NP-Hard Problems》- Tim Roughgarden

课程

工具

题集和资源