前言
ACM (Association for Computing Machinery ) 中文:国际计算机学会。ACM是一个世界性的计算机从业员专业组织,创立于1947年,是世界上第一个科学性及教育性计算机学会,目前在全世界130多个国家和地区拥有超过10万名的会员。ACM是全世界计算机领域影响力最大的专业学术组织。ACM所评选的图灵奖(A.M. Turing Award)被公认为世界计算机领域的诺贝尔奖。现任主席为Vicki L. Hanson教授。`
大赛简介
国际大学生程序设计竞赛(英文全称:International Collegiate Programming Contest(简称ICPC))是由国际计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛,赛事由AWS、华为和Jetbrains赞助,在北京大学设有ICPC北京总部,用于组织东亚区域赛。
大赛经历
ICPC赛事由各大洲区域赛(Regional)和全球总决赛(WorldFinal)两个主要阶段组成。根据各赛区规则,每站前若干名的学校获得参加全球总决赛的资格,决赛安排在每年的4-6月举行,而区域赛一般安排在上一年的9-12月举行。一个大学可以有多支队伍参加区域预赛,但只能有一支队伍参加全球总决赛。
ICPC以团队的形式代表各学校参赛,每队最多由3名队员组成,每位队员必须是在校学生,取得学士学位超过两年或进行研究生学习超过两年的学生不符合参赛队员的资格,并且最多可以参加2次全球总决赛。
比赛期间,每支参赛队伍使用1台计算机需要在5个小时内使用C、C++或Java中的一种编写程序解决10到11个问题,程序完成之后提交裁判运行,运行的结果会判定为“AC(正确)/WA(错误)/TLE(超时)/MLE(超出内存限制)/RE(运行错误)/PE(格式错误)”中的一种并及时通知参赛队。每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球。最后的获胜者为正确解答题目最多且总用时最少的队伍。每道题用时是从竞赛开始到试题解答被判定为正确为止,期间每一次提交运行结果被判错误的话将被加20分钟时间,未正确解答的不记时间。
资料分享
考点:
1、基础算法
排序、二分、高精度、前缀和与差分、双指针算法、位运算、离散化、区间合并
2、数据结构
链表与邻接表:树与图的存储
栈与队列:单调队列、单调栈
kmp、Trie、并查集、堆、Hash表
C++ STL使用技巧
3、搜索与图论
DFS与BFS
树与图的遍历:拓扑排序
最短路、最小生成树
二分图:染色法、匈牙利算法
4、数学知识
质数、约数、欧拉函数、快速幂、扩展欧几里得算法、中国剩余定理、高斯消元、组合计数、容斥原理、简单博弈论
5、动态规划
背包问题、线性DP、区间DP、计数类DP、数位统计DP、状态压缩DP、树形DP、记忆化搜索、贪心
6、时空复杂度分析
推荐学习平台
1、ACWing。
2、力扣。
3、牛客竞赛