- 博客(5)
- 收藏
- 关注
原创 一篇文章搞懂 push_back 和 emplace_back 的区别
全文从源码角度剖析 push_back 和 emplace_back 的区别,并用生动形象的例子来展示其微妙的区别。
2022-09-23 19:27:23
5498
1
原创 CCF CSP 202009-3 点亮数字人生
本题主要考察 有向图是否存在环路,记忆化搜索,状态压缩存储。 #include <bits/stdc++.h> //#include <iostream> //#include <queue> //#include <string> using namespace std; int Q, M, N, S; using ll = long long; // 状态压缩 ll input[10005][40]; short output[505]; bo
2021-04-16 11:17:15
295
原创 CCF CSP 202012-3 带配额的文件系统
CCF CSP 202012-3 带配额的文件系统 比较笨,没有用map写多叉树,把多叉树转换为了二叉树,用了经典的孩子兄弟表示法。 // #include <bits/stdc++.h> #include <string> #include <iostream> #include <vector> using namespace std; typedef long long ll; struct TreeNode { TreeNode() : c
2021-03-19 18:06:20
582
原创 字典树/数据结构/加速字符串查询
字典树(Trie) 试想一个经典的场景: 有一个字符串集合 C = [s1, s2, …, sn],给定字符串 t,要判断 t是否在集合 C中 解法一 利用遍历的思想,逐个遍历字符串数组: #C = [s1, s2, ..., sn] #t = 'xxx.xxx' def find(C, t): for s in C: if t == s: return True return False 假设字符串的平均长度为m,t的长度为k,C中有n个元素,这样做的时间复杂度为O(
2020-11-07 11:30:04
339
原创 Pattern Match KMP 算法/子串匹配算法简述
子串匹配算法 给定一个文本text,需要筛选出与pat匹配的子串. 朴素算法 对于长度为n的文本text,从每一个下标开始进行匹配,有(n-m)中选择,最坏情况下,每次都匹配成功,则复杂度为:O((n−m)m)=O(nm)O((n-m)m) = O(nm)O((n−m)m)=O(nm), 其中m为字符串pat的长度. 从字符串的匹配过程来看,当发生匹配失败或者匹配成功时,pattern的滑动成为了问题的关键. 朴素算法每次滑动一个单位,导致了大量的重复比较. 想办法多滑动几个单位是模式匹配优化的关键
2020-11-06 18:38:10
518
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人