- 博客(7)
- 收藏
- 关注
原创 【模板】算法基础之STL常用算法
标准模板库(Standard Template Library,STL)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。虽说它主要表出现到C++中,但在被引入C++之前该技术就已经存在了很长时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了.
2022-05-05 12:28:26 1032
原创 【模板】数据结构之STL常用容器
标准模板库(Standard Template Library,STL)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。虽说它主要表出现到C++中,但在被引入C++之前该技术就已经存在了很长时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了.
2022-05-03 21:13:37 507
原创 【模板】数据结构之字典树,并查集,堆,散列表
Trie树int son[N][26], cnt[N], idx;//0号点既是根结点,又是空结点 //son[][]存储树中每个结点的子节点//cnt[]存储以每个结点结尾的单词数量void insert(char *str){ int p = 0;//父节点 for (int i = 0; str[i]; i++) { int u = str[i] - 'a';//字符映射数字 if (!son[p][u])son[p][u] = ++idx;//新增该字符作为子结点,存储
2022-04-27 00:29:13 378
原创 【模板】数据结构之链表,栈与队列,KMP
频繁动态分配内存(new或malloc)会大幅拖慢程序运行效率,故以数组代替指针模拟链表单链表//head存储链表头,e[]存储结点的值,ne[]存储结点的next指针,idx表示当前用到了哪个结点(结点编号)int head, e[N], ne[N], idx;void init(){ head = -1; idx = 0;}void insert(int a){ //存储值 next指针指向head指向的值(结点编号)head指向当前结点 e[idx] = a, ne[id
2022-04-22 15:45:59 1271 1
原创 【模板】算法基础之位运算、双指针算法、离散化、区间合并
位运算n>>k&1//求n的第k位数字lowbit(n)=n&-n//返回n的最后一位1练习#3213. 二进制中1的个数[编程题]二进制中1的个数双指针算法for (int i = 0, j = 0; i < n; i++){ while (j < i&&check(i, j))j++; //具体问题的逻辑}常见问题分类:(1)对于一个序列,用两个指针维护一段区间(2)对于两个序列,维护某个次序,比如归并
2022-04-17 13:18:11 192
原创 【模板】算法基础之高精度加减乘除、前缀和与差分
高精度加法// C = A + B, A >= 0, B >= 0vector<int>add(vector<int>&A, vector<int>&B)//{ if (A.size() < B.size())return add(B, A);//保证A.size>B.size可以少一个判断条件 vector<int>C; int t = 0; for (int i = 0; i < A.size
2022-04-06 19:04:20 287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人