即刻
博客的搭建和美化日志
记录博客的搭建和美化过程(并不详细说明过程和各项配置)
线段树
线段树将每个长度不为 1 的区间划分成左右两个区间递归求解,把整个线段划分为一个树形结构,通过合并左右两区间信息来求得该区间的信息。这种数据结构可以方便的进行大部分的区间操作。 算法模板如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122// 懒标记线段树#define MAX 10000 // 原数组的大小int todo[4 * MAX + 1]; // 每个节点(区间)要做的事情,即懒标记,例如区间加上某个数、区间取反等int value[4 * MAX + 1]; // 每个节点(区间)的信息,例如区间和等/** ...
字典树
回想以前查找英文字典,最常用的方法就是按照单词字符顺序一个字母一个字母对照着查找。 字典树,首先是一个树,其次它能像查英文字典一样查找字符串,它的样子如下图所示: 树中每个非根节点代表一个字符(也可以看作每条边代表一个字符),对于每个粉色的节点,从根节点到该节点的路径表示一个存在的字符串。 初始时,字典树只有一个根节点,表示不存在任何字符串,我们可以通过下面的方法向树中插入字符串: 节点指针 p 指向字典树根节点,字符 c 表示待插入字符串中第一个字符,走 2; 若 p 的子节点中存在表示字符 c 的节点,走 3,否则创建一个 p 的子节点,使其表示字符 c,走 3 p 指向 p 的表示字符 c 的子节点,若字符 c 表示待插入字符串中的最后一个字符,走 4,否则字符 c 表示待插入字符串的下一个字符,走 2。 将 p 所指节点标记为字符串结束节点(即上述粉色节点,可以在节点中设置一个 isEnd 标志),插入结束。 根据下面算法模板看懂插入步骤后,查询单词的步骤也自然明白了,这里不再赘述。 算法模板如下: 123456789101112131415161718192021222 ...
记录 LeetCode 第 365 场周赛
记录 LeetCode 第 365 场周赛
记录 LeetCode 第 113 场双周赛
记录 LeetCode 第 113 场双周赛
Sophon 深度学习框架
最近一段时间在学习机器学习,学习过程中也自己实现了一个简单的深度学习框架。
快速幂
在 LeetCode 的第 330 场周赛的 T2:猴子碰撞的方法数 中遇到了快速幂的问题,于是写了这篇笔记。
一道好题:矩阵转换后的秩
前两天刷 LeetCode 每日一题的时候,遇到一道不错的并查集题目。