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

天梯赛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+还是很容易的,注意一下细节不要犯错就可以了,但是想要拿到高分还是要多练算法。

相关推荐
Hello!!!!!!2 小时前
C++基础(五)——屏幕和文件输入输出
开发语言·c++·算法
Rnan-prince2 小时前
Count-Min Sketch:海量数据频率统计的“轻量级计数器“
python·算法
程序员老邢2 小时前
【产品底稿 06】商助慧V1.2实战复盘:Milvus向量库重构+RAG仿写升级+前端SSE排版彻底修复
java·人工智能·经验分享·spring boot·ai·milvus
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【排序贪心】:加工生产调度
c++·算法·贪心·csp·信奥赛·排序贪心·加工生产调度
三毛的二哥2 小时前
BEV:MapTR
人工智能·算法·计算机视觉·3d
小菜鸡桃蛋狗2 小时前
C++——vector
开发语言·c++·算法
黎阳之光2 小时前
黎阳之光:以视频孪生硬核实力,抢抓交通科技新机遇
大数据·人工智能·算法·安全·数字孪生
WL_Aurora2 小时前
2026天梯赛题解
python·算法
大锤资源2 小时前
质性研究“铁三角揭秘“认识论、方法论与方法
经验分享