本节概要:
课程链接:戳这 <—(您的支持是我最大的动力!)
一、比赛期间的规则
天梯赛官网规则大全: https://gplt.patest.cn/regulation
1、参赛资格:每支参赛队伍最多由 10 名队员组成,参赛队必须由教练提供所在学校教务部门出具的队员身份证明,只有在获得保证队伍合格的材料后,才能获得参赛资格(当然还要交报名费,不知道大家学校会不会报销)。
2、比赛时长: 线上的比赛时长正常都为 3 小时(可能会因为特殊原因出现加时的情况,例如服务器开赛时会出现短暂的崩溃现象)
3、线上参赛要求:线上参赛的队员须自行准备竞赛需要的机器和环境(OMS 双机位+比赛指定要求的编译器),现场仅可使用无计算功能的铅笔或水笔,以及空白草稿纸,比赛期间会让学生举起身份证核对身份信息。
4、个人 | 队伍积分标准:
- 参赛队员必须独立按照严格的输入输出要求提交每一题的解题程序。程序须经过若干测试用例的测试,每个测试用例分配一定分数。每题的得分为通过的测试用例得分之和;整场比赛得分为各题得分之和。程序可以反复提交,取最高分,提交错误不扣分。
- 参赛队员可以在比赛中的任何时刻尝试解决任何梯级的题目。但只有当一支队伍的基础题总分超过 800 分时,该队进阶部分的题目分数才被判为有效。只有当其进阶题总分超过 400 分时,该队登顶部分的题目分数才被判为有效。
- 参赛队员的个人总分由其每题得分加先锋奖励构成。但只有当该队员的基础题总分超过 80 分时,其进阶部分的题目分数(包括奖励)才被判为对其个人有效;当其进阶题总分超过 40 分时,其登顶部分的题目分数(包括奖励)才被判为对其个人有效。
二、天梯赛ioi赛制的优点
1、赛制介绍:
- ACM 赛制
ACM 只有正确和错误两种结果,即使部分测试点通过仍显示答案错误。ACM 赛制必须通过所有的测试点才算通过,虽然可以看到程序的运行结果,但无法了解题目具体测试点的情况。题目可以不限次数提交,直到所有测试点均通过为止,但是提交错误一次往往会有 20 分钟的罚时。ACM 赛制可以看到实时的排行榜,可以根据排行榜上选手提交题目次数和通过率来安排自己的做题顺序(当然榜一神犇当我没说)。
由此可见,ACM 赛制交题需谨慎(当然时间不足的时候能 A 题肯定要 A 题,到时可以反复尝试,直到正确)。
- OI 赛制
OI 赛制提交题目得不到测试状态反馈,提交错误没有任何提示,一最后一次保存的结果为准。比赛中没有实时排行与A题情况(最讨厌这种赛制 orz)。
排名方式:每道题的测试点都有对应分数,通过一个测试点就有一个测试点的分,赛后按照总分进行降序排序。
所以遇到不会的题可以手动打表,骗测试点,能过一个就有一个的分。
- IOI 赛制(天梯赛的赛制)
IOI 赛制结合了 ACM 赛制和 OI 赛制的特点,提交之后有反馈结果,甚至可以看到本题的具体分数和排行,可以反复提交,没有罚时,按最高成绩为准。
排名方式:每道题的测试点都有对应的分数,通过一个测试点就有一个测试点的分,按照总分数实时排名。
IOI 赛制可以各种暴力,各种打表骗分,骗测试点。
三、天梯赛的拿奖标准
题目与评分: 竞赛中 3 个不同组别使用同一套题目,在同一时间,按照统一评分规则进行比赛(国三分数线固定 175 分,国二和国一会看比例调整分数线,如下规则所示:)。
个人奖:未获得个人冠军奖,但个人有效得分不低于 175 分的优胜者
- 个人一等奖:10% 优胜者,颁发电子证书
- 个人二等奖:30% 优胜者,颁发电子证书
- 个人三等奖:60% 优胜者,颁发电子证书
所以我们的目标就是往 175+ 分去冲的。
- 那么接下来就是讲解知识点和不断刷题巩固了,我们会通过往年的一些真题来了解天梯赛究竟会考哪些知识点
天梯赛真题集链接 <—(撮这)
四、编译器:cp editor
配置环境教程(点击这里跳转)
页面展示:

五、初始模板
#include <bits/stdc++.h> // 万用头文件,所有库都在里面了
#define x first // pair类型为了方便二维平面上表示(x,y)坐标
#define y second
#define int long long // 经典!我是那种比较粗心的会经常忘记开longlong,
// 所以直接把所有int变为longlong,但是这样有时可能会常数过大从而导致TLE或MLE
using namespace std;
typedef pair<int,int> PII; // pair在树和图上经常用到,也经常在二维平面上表示(x,y)坐标
typedef long long ll; // 可以ll代替longlong类型,少写一些字母
const int N=1e6+10; // 数组开到1e6可以应付绝大部分题目的数据量
// 从而保证不会RE和忘记修改数据,但是要注意空间复杂度
int a[N],b[N];
int T,n,m,k; // 可以事先列出常用的几个固定变量和数组
void solve()
{
// 此处解题
}
signed main() // 如果用了define int long long这里要改成signed
{
ios::sync_with_stdio(false);
// 关闭同步流固定写法,优化cin和cout的时间,在数据1e6以上就非常需要
cin.tie(nullptr),cout.tie(nullptr);
// 现在遇到很多题目都是T组数据,写成函数的形式方便把每一组数据区分开
cin>>T;
while(T–) solve(); // 如果没有T组数据就只写solve()
return 0;
}

