摘要:
队列 队列是一种先入先出的数据结构。 它像栈一样,也有数组和 STL 两种实现方法。 数组: int h, t, que[N]; que[++t] = x; // 入队 h++; // 出队 int k = que[h]; // 访问队头 h = t = 0; // 清空队列 STL: queue< 阅读全文
posted @ 2025-05-04 10:17
Yan719
阅读(13)
评论(0)
推荐(0)
摘要:
栈 栈是一种先进后出的数据结构。 栈有两种实现方法,一种是数组,另外一种是 STL 容器。 数组: int top, stk[N]; stk[++top] = x; // 入栈 top--; // 弹栈 int k = stk[top]; // 取栈顶 top = 0; // 清空栈 STL: st 阅读全文
posted @ 2025-05-04 10:17
Yan719
阅读(14)
评论(0)
推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-05-04 10:14
Yan719
阅读(9)
评论(0)
推荐(0)
摘要:
字典树(Trie) 先看一张图(来自 oi-wiki): 我们让每条边都代表一个字母,所以从根结点到任意一个结点的路径都是一个字符串。 因此,我们需要一个数组来记录每个结点是否有某条代表字母 \(c\) 的边,如果没有,就加上这条边,否则,直接跳到这条边指向的结点。 查找字符串 查询某个字符串是否出 阅读全文
posted @ 2025-05-04 10:13
Yan719
阅读(11)
评论(0)
推荐(0)
摘要:
字符串哈希 其实本质上就是将字符串映射到了一个值上面,由于比较数值是 \(O(1)\) 的,所以我们可以用这种方式加快字符串的比较。 转化方法: 选择一个比字符集大小要大的数 \(p\),将每个字符串看作成 \(p\) 进制下的数,求值。 通常来说,\(p\) 会取 \(31, 131, 1313, 阅读全文
posted @ 2025-05-04 10:11
Yan719
阅读(37)
评论(0)
推荐(0)
摘要:
概念 令 \(|s|\) 为 \(s\) 的长度。 子串:字符串 \(s\) 中任意的连续的一段被称为 \(s\) 的子串,特别地,空串也是 \(s\) 的子串。 前缀:字符串 \(s\) 中的任意一个从 \(1\) 开始的子串被称为 \(s\) 的前缀。 后缀:字符串 \(s\) 中的任意一个末尾 阅读全文
posted @ 2025-05-04 10:10
Yan719
阅读(20)
评论(0)
推荐(0)