# 编程比赛资料
**Repository Path**: talmudmaster/Programming_Competition_Materials
## Basic Information
- **Project Name**: 编程比赛资料
- **Description**: 编程比赛资料整理
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2023-06-05
- **Last Updated**: 2025-07-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# 写在前面
学编程 **切记绝对不能偷懒!!!看课和刷题是必要的,越勤越多越好!!!**
**编程思维** 是 **学和练** 出来的,没有其他任何捷径!!!
**光说不练假把式,光练不说傻把式,又练又说真把式。**
**借助工具来学习**,减少无效时间的浪费,比如**chatgpt**(百度搜索 "chatgpt镜像网站" ,选一个就行),哪里不懂都问它。
---
# 编程比赛介绍
**各奖项奖金 参照 组委会 和 各学校政策**
## 蓝桥杯
蓝桥杯全国软件和信息技术专业人才大赛(以下简称蓝桥杯)
> [蓝桥杯大赛官网](https://dasai.lanqiao.cn/)
### 1. 简介
- **OI赛制 个人赛**
>OI赛制:每道题提交之后都没有任何反馈,每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中看不到实时排名,赛后按照总得分来排名。
- 分为不同项目,**不同编程语言属于不同项目(C/C++、Java、Python)** ,分开比赛和计算名次奖状,其他项目见官方比赛章程。
- **比赛环境脱网**
- **不可以携带任何资料!!!**
### 2. 报名
- **只能报名一个项目** ,组别按照要求选择即可。报名费为 **300** 元/人。**部分学校有报销政策,自行打听了解** 。
- **听从学校老师安排在蓝桥杯官网填写信息和进行报名,切记不要错过报名时间**
### 3. 奖项
- 分为 **省赛** 和 **国赛**
- **省赛** 每个组别设置 **一、二、三** 等奖,原则上各奖项的比例为 **10%、20%、30%**
- **省赛一等奖获得全国总决赛资格**
- **国赛** 根据相应组别分别设立一、二、三等奖及优秀奖。其中,**一等奖不高于5%,二等奖占20%,三等奖不低于35%,优秀奖不超过 40%,零分卷不得奖。**
### 4. 题型及分数
- 分为 **填空题 和 编程题**
- 所有题目 **不进行在线判题,在比赛结束前均可以反复提交,比赛结束后才进行判题**
- **填空题答对才算分,编程题分为不同测试点,通过指定测试点才能获得指定分数**
- **比赛结束等待组委会放出获奖名单,一般为1~2周。**
---
## 天梯赛
团体程序设计天梯赛(以下简称天梯赛)
>[天梯赛官网](https://dasai.lanqiao.cn/)
### 1. 简介
- **IOI赛制 十人团体赛**
>IOI赛制:每道题提交之后都有反馈,可以看到“通过”、“运行错误”、“答案错误”等等结果,甚至可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,如果提交错误没有任何惩罚,仅以最后一次提交为准。比赛过程中一般可以看到实时排名(如果是考试,一般看不到排名),按照总得分来排名。可以说,IOI赛制是结合了OI赛制和ACM赛制的特点。
- **不限制编程语言的使用,可以使用 C/C++、Java、Python 中任意一种编程语言解答题目**
- **双机位监考**
- **不可以携带任何资料!!!**
### 2. 报名
- 报名费为 1000 元/队。**一般都是由学校出资** 。
- **只有学校老师才可以报名,听从学校老师安排提交个人信息**
### 3. 奖项
- 好复杂不想写hhhhh
### 4. 题型及分数
- 好复杂不想写hhhhh
---
## CPC类 比赛
以广西GXCPC为例
>[第六届广西大学生程序设计大赛暨第一届中国-东盟国际大学生程序设计大赛实施方案](http://bkjy.gxeduyun.edu.cn/699/1811/37034.html)
### 1. 简介
- **ACM赛制** **三人团体赛**
>ACM赛制:每道题提交之后都有反馈,可以看到“ac 通过”、“ce 运行错误”、“wa 答案错误”等等结果,但看不到错误的测试样例(leetcode周赛可以看到),每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。每道题不限制提交次数,但没通过的话会有罚时,仅以最后一次提交为准。比赛过程中一般可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名。
- **不限制编程语言的使用,可以使用 C/C++、Java、Python 中任意一种编程语言解答题目**
- **可以携带纸质资料(书籍、字典、自行打印的资料),不可以携带任何电子设备!!!**
>[ACM类算法竞赛 入门介绍](https://zhuanlan.zhihu.com/p/406365237)
### 2. 报名
- **只有学校老师才可以报名,听从学校老师安排提交个人信息**
### 3. 奖项
- 设置 **冠亚季军 和 一、二、三** 等奖
- 根据广西区教育厅文件规定,按正式参赛队伍总数的10%、15%、25%比例颁发一、二、三等获奖证书。
- 非正式参赛队伍获奖不占正式名额(俗称打星)
### 4. 题型及分数
- 所有题目 **进行在线判题**
- **编程题分为不同测试点,提交并通过全部测试点才算解答此题,并累加答题时间(比赛开始到解答此题经过的时间+罚时)到总时间上**
- **提交未能通过全部测试点及其他情况则算作一次罚时(20分钟),解答此题后罚时累加到总时间**
- 比赛前4个小时可以一直查看榜单,**最后一小时封榜**
- 排名按 **解题数量、总时间按从高到低** 排列
- **比赛结束等待滚榜放出获奖名单**
---
# 编程比赛要点注意
## 赛前
做好充足的准备
- 保证 **良好的身体状态、充足的睡眠和休息、尽量少喝水**。
- 提前了解 **比赛规则** 和 **编译环境**。
- 提前准备并妥善放置 **身份证 、 学生证 、 准考证 、 笔** 等物品。
- **针对不同比赛,进行有针对性的刷题**:
蓝桥杯:**暴力、优化 、 DFS**等知识点 用的比较多。使用 **蓝桥杯练习系统** 进行练题。
[蓝桥杯练习系统-试题集](https://lx.lanqiao.cn/problemsets.page)
天梯赛:**容器类、数学思想 、 数据结构**等知识点 用的比较多。使用 **PTA系统** 进行练题。
[PTA教育超市-天梯赛模拟赛](https://pintia.cn/market/tag/1409772701904547840)
CPC类比赛: **容器类、数学思想、算法 、 数据结构** 都有涉及。使用 **acwing 、 洛谷 、 牛客** 进行日常练题,使用 **牛客竞赛 、 codeforce** 练同类型比赛的题。
## 赛中
既然参加编程比赛,就一定要朝着**解题更多,编码总用时更少**的方向努力。一切都要为此让步,比如
- 心态要稳,**不要在一题上卡太久**,继续往下写。
- **参考别人的过题情况** 来确定写题顺序。
- **仔细阅读题目** ,避免读错题。
- 赛前数月要 **勤刷题** ,保证充足的编程手感。
- 写题注意点:
蓝桥杯/天梯赛:解不出题可以写出一些特殊情况的解进行 **骗分**。
(ACM赛制)CPC类比赛:因ACM赛制,**不能进行骗分**。**谨慎且果断提交,尽量减少罚时** 。看到 **不懂的单词不要猜,直接查字典** 。
## 赛后
- 比赛完仍然要 **归纳总结** ,上网看看 **别人的思路和想法** ,有题目的话可以 **重新写题** ,编写 **编程笔记和题解** 。比如:
[2023年第六届广西大学生程序设计竞赛(热身赛)题解](https://blog.csdn.net/weixin_45940369/article/details/131024684)
- 可以写 **比赛日记** ,记录比赛的经历、过程及心得,以后还可以回忆。比如:
[如何评价第六届广西大学生程序设计竞赛?](https://www.zhihu.com/question/602563303)
[gxcpc6 游记](https://afleartley.blog.luogu.org/gxcpc6-you-ji)
---
# 编程比赛常见术语
## 比赛相关
- AK:All-Killed 通常指在信息学竞赛中获得满分(即 AC 了所有题目)。
由于在中高级信息学竞赛中(如 IOI,NOI,NOIP,ACM),想要获得满分普遍较难,甚至根本不可能,所以 AK 也自然成为了夸赞信息学高手的用语
- AC:Accepted 通过了测试样例(答案正确)
- WA:Wrong Answer 答案错误,表示你提交的程序评测中得到的结果与标准数据不同,故该数据点不得分。
- TLE:Time Limit Exceed 超出时间限制/超时
- CE:Compilation Error 表示编译错误,程序无法编译。
- RE:Runtime Error 运行时错误
- MLE:Memory Limit Exceed 超出内存限制
- PE:Presentation Error 格式错误
- OLE:Output Limit Exceed 输出超出限制/输出超限
- 爆零:在比赛中取得了 0 分
## 常见术语
- ACM:美国计算机协会
- ICPC:International Collegiate Programming Contest 国际大学生程序设计竞赛,由美国计算机协会(ACM)主办,是全球最具影响力的大学生程序设计竞赛(最高赛事)
- 赛制:[编程比赛三大赛制介绍(ACM赛制、OI赛制、IOI赛制)](http://e.betheme.net/article/show-314602.html)
- OI:Olympiad in Information 信息学奥林匹克竞赛
- Oler/竞赛er:参赛选手
- OJ:Online Judge 在线评测平台 ,多指信息学在线评测平台
- 神犇(shén bēn):指在信息学方面实力强的人。
神,意为像神一样。犇,在此处与原义(原义是“奔跑”的奔)无关,因字中含有三个牛而被信息学学习者引申出“非常牛”的意思
- 蒟蒻(jǔ ruò):同音“巨弱”,指信息学水平很弱的人,是 大神/神犇 的反义词。
蒟蒻一词经常用于信息学竞赛生的自嘲,不过这些自嘲的人大部分都是神犇。
---
# 编程 | 学习
写代码时 **多写注释**。
## 学习 | 练题 平台
不建议自己埋头学,最好还是跟着一些 **算法课** 来学(acwing or 牛客)
并且**一定要勤加练习** ,**千万不要自以为看懂了就不去练题!!!**
- [牛客竞赛](https://ac.nowcoder.com/)
牛客竞赛,专业的竞技算法训练平台。
✨ 有很多题目及比赛题可以写,最重要的是可以 **查看别人过题的代码** ,这个超级棒!!!
- [acwing](https://www.acwing.com)
有算法系列精品课程-AcWing算法全家桶,配备全面系统的知识讲解,配套题库的实战训练,专业在线的答疑辅导。
✨ 推荐 **买课** 看
- [洛谷](https://www.luogu.com.cn)
洛谷致力于为参加noip、noi、acm的选手提供清爽、快捷的编程体验。它拥有在线测题系统、强大的社区、在线学习功能。
- [codeforce](http://codeforces.com)
计算机编程爱好者提供在线评测系统的俄罗斯网站。上面有很多cpc区赛题。
✨ **强烈推荐** 打cpc比赛的同学试试
- [oi-wiki](https://oi-wiki.org)
免费开放且持续更新的 编程竞赛 知识整合站点。
✨ 很棒
---
## 编程笔记 | 题解
有条件的 **强烈建议** 多写些 **编程笔记** 和 **题解**
可以参照别人的来写,多写 **编程笔记** 和 **题解** 进行归纳总结,是可以提升自己的 **编程思维** 的。
可以写在CSDN或cnblog上(写在网上随时随地都可以查看)。
建议学习并使用 md格式 来写,真的很方便。
比如:[C++常用函数、容器类 和 STL](https://blog.csdn.net/weixin_45940369/article/details/131059386)
---
# 入门建议掌握的知识点
## 数学思想
- 高精度算法、大数处理、取模运算、进制转换、位运算
- 数论(素数、最大公约数、最小公倍数、分解质因数)
- 组合计数(排列、容斥)
- 差分、前缀和、快速幂
- 博弈论
- 其他
---
## 算法 | 数据结构
- 暴力、枚举与模拟、递归与分治、字符串处理、排序、二分、双指针、区间合并
- 贪心、并查集、KMP
- 动态规划DP(背包问题、线性DP、区间DP、状态压缩DP、记忆化搜索)
- 搜索(BFS、DFS、剪枝优化、回溯)
- 线性数据结构(数组、链表(跳跃表)、队列、栈)
- 复杂数据结构(树、二叉树、图、哈希表)
- 最短路
- 其他
---
## C++ STL
### 容器类
1. 序列式容器(Sequence Containers):
- vector:动态数组,支持随机访问,可动态扩展大小。
- deque:双端队列,支持双向访问,可高效插入删除首尾元素。
- list:双向链表,支持顺序访问,可高效插入删除。
2. 关联式容器(Associative Containers):
- set:基于红黑树实现的无序集合,元素唯一,并按照从小到大排列。
- multiset:基于红黑树实现的无序集合,元素可重复,并按照从小到大排列。
- map:基于红黑树实现的关联数组,键值对存储,自动排序。
- multimap:基于红黑树实现的关联数组,键可以重复,键值对按照插入顺序存储。
3. 无序关联式容器(Unordered Associative Containers):
- unordered_set:基于哈希表实现的无序集合,元素唯一,按照哈希值分组,查找复杂度为 O(1)。
- unordered_multiset:基于哈希表实现的无序集合,元素可重复,按照哈希值分组,查找复杂度为 O(1)。
- unordered_map:基于哈希表实现的关联数组,键值对存储,自动扩容和重组,查找复杂度为 O(1)。
- unordered_multimap:基于哈希表实现的关联数组,键可以重复,键值对按照插入顺序存储,查找复杂度为 O(1)。
### 容器适配器
- stack 是基于 deque 或 vector 或 list 实现的栈容器适配器,支持后进先出(LIFO)的元素存取。由于栈的特殊性,只允许从栈顶进行插入和删除操作,因此其接口与 vector 容器类似,只提供了 push、pop、top 等操作。
- queue 是基于 deque 或 list 实现的队列容器适配器,支持先进先出(FIFO)的元素存取。队列要求从队尾插入元素,从队头删除元素。因此,其接口与 deque 容器类似,只提供了 push、pop、front 和 back 等操作。
- priority_queue 是基于 vector 实现的堆容器适配器,支持自动排序和高效的插入、删除操作。堆排序的实现需要维护一个二叉堆,而 C++ STL 中提供了一个优先队列容器适配器,可以方便地实现优先队列功能。该容器适配器类似于队列,但是每次插入元素时会自动调整堆得顺序,使得队首元素始终是最大值(或最小值)。
### 组件
- pair 是用来存储一对值的容器适配器,可以用来定义关联数组、映射表等数据结构。例如可以使用 pair 存储一个字符串和一个整数,一个日期和一个时间等。pair 可以使用 STL 中的算法和容器进行操作,例如 vector、map、set 等。
- heap 是堆排序算法的一部分,它并不是一种容器或容器适配器。STL 中提供了 make_heap、push_heap 和 pop_heap 等函数,用于对容器中的元素进行堆排序。make_heap 函数将容器转换为堆,push_heap 函数在堆中插入新元素,pop_heap 函数删除堆顶元素并重新调整堆的结构。使用 heap 可以快速地对序列排序和查找最值等操作。
### 迭代器
- 至少掌握 迭代器iterator 的用法
- [C++ STL迭代器](https://blog.csdn.net/ProgramAlcohol/article/details/122238033)
### 常用算法函数
- 至少掌握常用算法函数,如
增删改查元素、排序、比较、翻转、计数、排列组合
数学函数(返回最大最小值、幂运算、求平方根、求绝对值、求对数、向上/下取整、四舍五入、生成伪随机数、_gcd) 等
- [C++常用STL (容器类 、容器适配器 、迭代器 和 算法)](https://blog.csdn.net/m0_50046535/article/details/124358895)
---
## 其他
- 关键字auto的用法
可以和 STL 容器、算法、迭代器等紧密结合使用,可以方便地推导出容器中元素、算法返回值、迭代器指向的类型等信息。
- 代码优化提速
```
// 比如c++
// 提高输出时换行效率
#define endl '\n'
// 提高程序的输入输出效率
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
```
- [C++常用函数、容器类 和 STL](https://blog.csdn.net/weixin_45940369/article/details/131059386)
- 可以参考 [OI-wiki](https://oi-wiki.org/) 的 [学习路线](https://oi-wiki.org/contest/roadmap/) 和 [学习资源](https://oi-wiki.org/contest/resources/)
---
# 资料分享
## 笔记题解
- [牛客网编程笔记题解](https://www.nowcoder.com/users/730785264)
- [CSDN编程笔记题解](https://blog.csdn.net/weixin_45940369/category_12290671.html)
- [acwing编程笔记题解](https://www.acwing.com/user/myspace/index/303633/)
---
## 资料PDF(可打印)
- [oiwiki的pdf](https://github.com/OI-wiki/OI-Wiki-export/releases)
挑一些打印就行
- [y总基础课+提高课+进阶课模板.pdf](资料PDF/y总基础课+提高课+进阶课模板.pdf)
---
## 题目及题解PDF
- [codeforce-gym](http://codeforces.com/gym)
codeforce中有很多cpc题目和题解可以下载
- [题目及题解PDF](题目及题解PDF)
- [广西cpc题目及题解](题目及题解PDF/省赛/广西)
---
# 贡献者
桂林学院 蓝桥杯、天梯赛、GXCPC 参赛队员
bilibili @回忆_少年、@S星球の王子