随笔分类 -  算法学习

日常学习的算法总结
摘要:SOS DP 学习笔记 有关子集和超集求和的问题。 题单 阅读全文
posted @ 2024-07-22 16:50 zhouruoheng 阅读(6) 评论(0) 推荐(0) 编辑
摘要:浅谈线段树 线段树进阶 Part 1 线段树相关技巧的小小总结 浅谈扫描线 线段树的扩展之浅谈zkw线段树 浅谈权值线段树 浅谈权值线段树到主席树 浅谈李超线段树的另一种实现方法 线段树分治总结 浅谈线段树分裂 线段树合并:从入门到放弃 阅读全文
posted @ 2024-05-24 22:36 zhouruoheng 阅读(77) 评论(0) 推荐(1) 编辑
摘要:快速傅里叶变换(FFT)详解 原文链接:快速傅里叶变换(FFT)详解 - 自为风月马前卒 - 博客园 (cnblogs.com) 目录 前言 多项式 系数表示法 点值表示法 复数 向量 圆的弧度制 平行四边形定则 复数 运算法则 单位根 单位根的性质 快速傅里叶变换 快速傅里叶逆变换 理论总结 递归 阅读全文
posted @ 2024-04-21 17:20 zhouruoheng 阅读(8) 评论(0) 推荐(0) 编辑
摘要:后缀自动机的一些题目的整理 P3804 【模板】后缀自动机(SAM) P3804 【模板】后缀自动机(SAM) 板子题,没啥好说的。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e6 阅读全文
posted @ 2024-03-28 18:13 zhouruoheng 阅读(20) 评论(0) 推荐(0) 编辑
摘要:AC自动机 前置芝士 kmp trie 介绍 学算法首先肯定要清楚这个算法是用来解决啥东西的。 AC 自动机是用线性的复杂度来解决多模匹配的算法。 额(⊙o⊙),说人话就是例如给你一堆字符串(称为模式串)和一个字符串(称为文本串),让你求模式串们在文本串出现的总次数。 来直接看模板题: AC 自动机 阅读全文
posted @ 2024-03-12 23:26 zhouruoheng 阅读(162) 评论(0) 推荐(1) 编辑
摘要:分块 前言 在了解过树状数组和线段数之后,我们已经能处理许多区间的信息修改和查询的题目。但当信息不具有区间可加性时,用树状数组和线段树就不好处理了,这时候就可以用到一种优雅的暴力——分块。 简介 分块是一种思想,通过适当的划分,预处理一部分信息并保留,用空间换时间达到时空平衡,来完成对数列一些区间操 阅读全文
posted @ 2024-02-23 16:26 zhouruoheng 阅读(25) 评论(0) 推荐(0) 编辑
摘要:树状数组总结 前言 树状数组是数据结构中的一股清流,代码简洁,思路清晰,又好理解 qwq。 前置芝士 lowbit:https://www.cnblogs.com/zhouruoheng/p/18003331 简介 树状数组是一种基于 lowbit 的用于维护 n 个数前缀和信息的数据结构。 阅读全文
posted @ 2024-02-04 10:56 zhouruoheng 阅读(33) 评论(0) 推荐(2) 编辑
摘要:lowbit 函数 定义 lowbit(n) 定义为非负整数 n 在二进制表示下最低位的 1 所对应的值。 任一非负整数都可被表示一个二进制数: (5)10=(101)2(6)10=(110)2而 lowbit 是这样的,设一个非负整数 n 阅读全文
posted @ 2024-02-02 16:26 zhouruoheng 阅读(131) 评论(0) 推荐(3) 编辑
摘要:双向广搜(meet in the middle) 简介 双向广搜是搜索的一种进阶优化技巧,例如在已知终点和起点的情况下求是否能到达,需要走多远路。只从起点开始搜索可能会很费时间,那既然已知终点,为何不从终点同时开始进行搜索,看看是否能在中间相遇,也就是双向广搜(meet in the middle) 阅读全文
posted @ 2024-02-01 17:35 zhouruoheng 阅读(71) 评论(0) 推荐(3) 编辑
摘要:线段树合集 线段树:https://zhuanlan.zhihu.com/p/656702623 扫描线:https://oi-wiki.org/geometry/scanning/ or https://zhuanlan.zhihu.com/p/103616664 or https://www.c 阅读全文
posted @ 2024-01-31 16:04 zhouruoheng 阅读(15) 评论(0) 推荐(1) 编辑
摘要:主席树 前言 主席树也是一种数据结构,是线段树的进阶,作用是可以保留历史版本,支持回退,就是回到之前某个未修改的状态。就像我们在写博客时如果误删了重要的内容,就可以用 Ctrl + z 撤回一次操作,也可以用Ctrl + Shift +z 还原我们撤回的操作,这就需要存下每次编辑的操作。 基本原理 阅读全文
posted @ 2024-01-23 20:04 zhouruoheng 阅读(261) 评论(1) 推荐(6) 编辑
摘要:关于离散化的那些事 离散化,本质上就是一种 hash,我们需要用到的只是数据的排名而不是数据本身,通过映射的方法把跨度大又疏松的数据转化为跨度小的数据。 离散化一般有两种形式,一种是 sort+unique,另一种是 map。 sort+unique 首先就是直接用数组排序后去重,将需要用的所有数塞 阅读全文
posted @ 2024-01-23 18:26 zhouruoheng 阅读(54) 评论(0) 推荐(0) 编辑
摘要:Treap 前置芝士 二叉搜索树(BST),见 BST。 平衡二叉树(AVL)。 先来介绍一下平衡二叉树。 背景 BST 出现以后,人们很快发现一个问题,当其维护一个有序序列时,很可能会退化成链。如图: 这样的话,原来 O(logn) 的复杂度就退化为 O(n),这是我们无法接 阅读全文
posted @ 2024-01-15 16:06 zhouruoheng 阅读(131) 评论(0) 推荐(1) 编辑
摘要:BST 基础芝士 给定一棵二叉树,每个节点有权值,定义“BST 性质”为: 对于树中的任意一个节点 x 都有: x 的权值大于 x 的左子树中任意节点的权值。 x 的权值小于 x 的右子树中任意节点的权值。 即 \(左子树任意点的权值 < x < 右子树任意点 阅读全文
posted @ 2024-01-11 15:31 zhouruoheng 阅读(166) 评论(0) 推荐(2) 编辑
摘要:矩阵乘法 前言 矩阵乘法属于数论中的知识点,其实也就是新的概念,就像向量的运算一样,接受了之后就好了,当然可能会容易忘记,所以还是要多用多练。 基本概念 矩阵是一个按照长方阵列排列的复数或实数集合。 形如 \[A = \begin{bmatrix} a_{1,1} & a_{1,2} & \cdot 阅读全文
posted @ 2024-01-05 21:59 zhouruoheng 阅读(27) 评论(0) 推荐(2) 编辑
摘要:树链剖分 前言 树链剖分听上去就挺高级,实际上,和线段树一样,理解其中的原理就简单得多。重点还是代码,码量极长,还是一句话,熟能生巧,多练。 转载:树链剖分详解 by ChinHhh P3384 【模板】重链剖分/树链剖分 P3384 分析 基础板子题,注意细节。 code #include <bi 阅读全文
posted @ 2024-01-03 21:35 zhouruoheng 阅读(11) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示