天梯赛经验总结(细节篇)

天梯赛L1,L2的常考考点:

L1:

  • 输入输出、字符串处理
  • 简单数学:整除、取余、最大公约数、最小公倍数、素数判断
  • 简单循环、条件判断
  • 结构体/简单排序
  • 水题占比极高,不卡算法,只卡细心

L2:

  • 基础数据结构:栈、队列、链表、二叉树遍历

  • 排序、二分查找

  • 简单图:连通性、最短路(Dijkstra 简化版)

  • 简单递归 / 暴力枚举

  • 模拟题(逻辑长,但不难)


    需要注意的细节处理:

天梯赛的基础题不难,但是有的时候可能卡在细节处理上,比如赋值,数值溢出,越界访问等细节,导致一些案例WA,下面是我总结的比较容易犯错的几个点还有需要记住的细节。

vector数组的插入:

在写vector数组进行读取数值的操作的时候,需要注意有没有一开始就给数组开辟了空间,如果已经开辟了空间,直接用下标,如果没有,用push_back()。因为有可能出现你已经开辟了空间,但是写入数据使用的是push_back(),这样你取出来的数据就有可能不对。

你可能觉得没什么,但是有时候脑子一热就有可能写错,检查的时候却反应不过来,所以最好养成这样一个习惯。


栈的读取:

注意在读取栈中的元素时一定要确保栈是非空的,否则程序会出错,每次写一句**!st.empty()**总是没有问题的,多一重保险嘛。


string字符串的常用操作(常考):

string是天梯赛的常考知识点,所以下面的常见操作一定要掌握:

以string s="hello"为例

1.清空字符串:s.clear()
2.插入/删除:

插入:s.insert(2,"xx"),表示在索引2前面插入字符串"xx"

删除:s.erase(2,2),表示从索引2开始删除两个字符

3.访问字符:

s.front()/s.back(),分别为访问第一个和最后一个字符

4.查找:

int pos=s.find("h"),find函数返回字符的索引 ,如果字符串中找不到这个字符,则返回string::npos

5.分割空格:

分割空格操作:

下面是分割字符操作的代码模板,考试时可以直接写;

cpp 复制代码
vector<string> parts;//parts里存的是分割的字符串
string temp;
stringstream ss(s);
while(ss>>temp){
parts.push_back(temp);
}
6.分割指定字符,如!,&等,

我们将这些字符记为delim,函数模板如下;

cpp 复制代码
vector<string>split(string& s,char delim){
    vector<string> parts;//parts里存的是分割的字符串
    string temp;
    stringstream ss(s);
    while(getline(ss,temp,delim)){
    parts.push_back(temp);
    return parts;
}

还有要注意的一点是,如果你用cin>>s;那么程序在读取到空格后会终止的,如果你想要读取含有空格的字符串,例如"hello world",需要用getline(cin,s);

还有在使用getline时,最后看一下前面是否有空行,若有需要用cin.ignore(),否则就算你用了getline,也读取不了字符串


优先级队列:

天梯赛考优先级队列考的也相对较多,下面是优先级队列的几个模板。

优先级队列默认是大顶堆,小顶堆的写法如下:

cpp 复制代码
priority_queue<vector<int>,vector<vector<int>>,greater<vector<int>>heap;

那如果我想要自定义比较函数呢?也很简单,priority_queue的模板如下:

priority_queue<元素类型,底层容器,比较函数>

例如;其中cmp是自定义比较函数,

cpp 复制代码
priority_queue<vector<int>,vector<vector<int>>,decltype(cmp)>heap(cmp);

总结:

好了,要说的就这么多了,其实天梯赛想要拿100+还是很容易的,注意一下细节不要犯错就可以了,但是想要拿到高分还是要多练算法。

相关推荐
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2026.05.13 题目:1674. 使数组互补的最少操作次数
笔记·算法·leetcode
liulilittle1 小时前
TCP UCP v1.0:BBR 的非破坏性约束层
网络·c++·网络协议·tcp/ip·算法·c·通信
虹科数字化与AR1 小时前
移动质量检测设备选型:从成本、效率到用户体验
经验分享·移动检测技术选型
每天回答3个问题1 小时前
LeetCodeHot100|回溯算法、46.全排列、78.子集、17.电话号码的字母组合
算法·深度优先·回溯
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-05-12
大数据·人工智能·经验分享·神经网络·产品运营
号码认证服务2 小时前
如何让经销商接电话时看到“XX集团”?申请号码认证统一上线
服务器·经验分享·sql·华为·智能手机·华为云·云计算
Liangwei Lin2 小时前
LeetCode 287. 寻找重复数
算法·leetcode·职场和发展
蛋白界小百灵2 小时前
荧光原位杂交FISH技术检测乳腺癌循环肿瘤细胞(CTC)的方法学与临床验证分析
经验分享·科技·生物技术
OCR_133716212753 小时前
护照OCR校验位技术解析:从算法逻辑到工程落地,筑牢证件核验安全线
人工智能·算法
Hello.Reader3 小时前
算法基础(十三)——随机算法为什么有时主动引入随机性
java·数据库·算法