- 博客(5)
- 收藏
- 关注
原创 一篇文章搞懂 push_back 和 emplace_back 的区别
全文从源码角度剖析 push_back 和 emplace_back 的区别,并用生动形象的例子来展示其微妙的区别。
2022-09-23 19:27:23
5467
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
286
原创 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
575
原创 字典树/数据结构/加速字符串查询
字典树(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
331
原创 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
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人