文章分类 -  算法

摘要:Hall 定理 引入 有 n 个男生,每个男生都有若干个喜欢的女生。 现在要求每个男生都与其中一个自己喜欢的女生牵手,且每个女生只能和一个男生牵手。 问是否存在一个方案。 定理: 当我们选择任意 k (k[1,n]) 个男生,他们喜欢共有 k 个不同的女生,那么就存在一 阅读全文 »
posted @ 2023-01-16 10:05 zuytong 阅读(187) 评论(0) 推荐(0) 编辑
摘要:没想到都临近最后一次 NOIP 了,还要被迫学新东西... 不过还好这个知识很好理解。 构造 Prufer 序列: 对于一棵有标号无根树,如果要用一个序列来表示它,那么 Prufer 序列就是其中的一种。 对于一个结点数为 n 的树,它的 Prefer 序列的长度为 n2。 构造方式为:每 阅读全文 »
posted @ 2022-11-22 19:33 zuytong 阅读(53) 评论(0) 推荐(0) 编辑
摘要:做一个简单的总结。 定义 常用于计数容斥中,解决的是“钦定”和“恰好”的问题。 我们定义 fi 是钦定有 i 个满足条件的方案数,gi 是恰好有 i 个满足条件的方案数。 常见的有四种形式: $$f_n = \sum_{i=0}^n(-1)^i\begin{pmatrix}n\i 阅读全文 »
posted @ 2022-11-01 14:48 zuytong 阅读(34) 评论(0) 推荐(0) 编辑
摘要:终于来填坑嘞 ① 点分治 ~~(俗称淀粉质)~~ 通常用来解决树上路径问题 我们每次钦定一个点,并只统计经过这个点的路径;处理完后我们向其子树分治下去 每次选择的点都很关键,比如一条链,如果你一直选择它的端点,那我们的时间复杂度可能还是 O(n2) 最优的决策点应该是树的重心,这样树的高度就保 阅读全文 »
posted @ 2022-10-27 15:31 zuytong 阅读(29) 评论(0) 推荐(0) 编辑
摘要:引入 给出一个长为 n 的字符串 s,要求每个后缀的排名。 约定 后缀 i 表示 si 开头的后缀,储存时用 i 直接代表 si...nsai 表示排名为 i 的后缀 xrki 表示后缀 i 的排名。 O(n2logn) 将所 阅读全文 »
posted @ 2022-10-25 09:50 zuytong 阅读(25) 评论(0) 推荐(0) 编辑
摘要:学习 广义SAM 之前,请保证对 字典树、SAM 有一定了解 基础知识 伪广义后缀自动机 之所以是“伪”,因为它的时间复杂度并无法保证(虽然大部分情况下依旧是线性的,也够用),而且部分信息可能无法维护 常见的有以下两种: 将多个字符串直接连接,相邻两个字符串用特殊符号分隔 每将一个字符串全部加入到 阅读全文 »
posted @ 2022-10-10 10:02 zuytong 阅读(60) 评论(0) 推荐(0) 编辑
摘要:基础模型 初学 SAM,感觉这东西实在是抽象... 建议就是感性理解 + 背板子 参考资料: OI-Wiki cmd 的博客 endpos 首先我们来了解什么是 endposendpos,顾名思义就是“结尾位置” 而 $\text{endp 阅读全文 »
posted @ 2022-10-09 10:46 zuytong 阅读(30) 评论(0) 推荐(0) 编辑
摘要:K-D Tree (K - Dimension Tree),是一种用来解决 k 维空间信息的数据结构;一般在 OI 竞赛中,以 k=2 为多 K-D Tree 实际上是一个二叉搜索树;而为了让复杂度尽量优(注意,K-D Tree 在某些问题可以被卡成暴力的复杂度),我们会让树高尽可能的小,因 阅读全文 »
posted @ 2022-09-28 09:31 zuytong 阅读(114) 评论(0) 推荐(1) 编辑
摘要:引入: 差分约束是来解决以下这一类问题: 给出多个 xixj+c 的限制,求一组 x 的合法方案 那么我们就可以从 ji 连出一条边长为 c 的有向边 跑一次最短路,就能得到最小的合法方案 如果出现负环,则是无解 代码 进阶: 题意: n1e5阅读全文 »
posted @ 2022-09-22 09:48 zuytong 阅读(18) 评论(0) 推荐(0) 编辑
摘要:~~之前一直觉得这个算法没啥实际用处,现在才知道是我错了~~ 推荐一下这位大佬的博客,让我很好理解了 WQS 二分 这类二分通常用来解决这类问题: n 个数,要求恰好选 m 个,问最大/小和 而这类二分也有一些比较严苛的条件要求: 令 gi 为恰好选 i 个数的最优方案,那么必须有 阅读全文 »
posted @ 2022-09-18 22:00 zuytong 阅读(41) 评论(0) 推荐(0) 编辑
摘要:因为上年 CSP-S 考了,但我并不会建树,于是今年初赛前来学学(虽然出的概率是微乎其微的了) 笛卡尔树满足两个条件: 它是一棵二叉搜索树 它是一个小根堆 若树上每个结点都有一个键值二元组 (k,w),那么关于 k 满足二叉搜索树的性质;关于 w 满足小根堆的性质 现在考虑建树过程: 我 阅读全文 »
posted @ 2022-09-16 10:10 zuytong 阅读(31) 评论(0) 推荐(0) 编辑
摘要:这个算法是用来解决:求图上两点的路径,最大/小的边的相关信息 例题引入: 传送门 在之前学习 MST 中,我们了解到,当用 kruskal 生成一棵 MST,它同时满足为瓶颈生成树(即使最小化最大边) 因此我们可以在 MST 找出询问点 (u,v) 的路径,求最大边 但这个似乎不太优秀(?那就用 阅读全文 »
posted @ 2022-09-14 11:08 zuytong 阅读(90) 评论(0) 推荐(0) 编辑
摘要:学习笔记 LCT,是一个强大的数据结构,通常用来维护动态森林的一些操作 我们将原树剖分成多条实链,满足每个实链内的点在原树的深度是严格递增的,每个实链用一个 splay 来维护 每个结点到其子结点最多只有一条是实边,其余的都是虚边,保证每个结点只在一个 splay 中 每个 splay 的根节点指向 阅读全文 »
posted @ 2022-09-13 10:30 zuytong 阅读(36) 评论(0) 推荐(0) 编辑
摘要:LCT 的前置知识: splay 是一种二叉搜索树,满足中序遍历是原序列,支持区间插入、删除、查询等操作 基本操作:旋转 进阶操作:双旋 顺链:先父亲再自己 折链:先自己再父亲 可证明双旋复杂度是均摊 O(logn) 的 初始化:先建一个 -INF 和一个 INF 结点 查找 num阅读全文 »
posted @ 2022-09-12 21:21 zuytong 阅读(94) 评论(0) 推荐(0) 编辑
摘要:万物皆可分治 例题引入: 动态加边、删边,询问两点联通状态(不要求在线,n,m1e5) 询问联通状态,我们可以自然想到用并查集来维护 但问题就在于,并查集不能删边 比如我们加入边 12,23,13,再删除 12,问你 13 的联通性;由于并查集对加入 13阅读全文 »
posted @ 2022-08-17 21:09 zuytong 阅读(19) 评论(0) 推荐(0) 编辑
摘要:一些背景 问题引入: 给出一个图 G=(V,E)V 表示结点,E 表示边),以及 V 的一个子点集 S。现在要求选出一个 G 的子图 G=(V,E),满足 SV G 为连通图 E 的边权和最小 换句话说,就是给出一个图,以及 阅读全文 »
posted @ 2022-08-12 14:58 zuytong 阅读(47) 评论(0) 推荐(0) 编辑
摘要:入门 1. 基本要素 定义“外结点”表示左儿子或右儿子为空的结点 定义 disu 表示结点 u 到最近的一个“外结点”的距离 2. 基本性质及结论 左偏树本质为小根堆,满足一个结点的权值大于等于其左右儿子的权值 左偏树满足左偏的性质,即对于任意一个结点 u,满足 $dis_{l_u}\ 阅读全文 »
posted @ 2022-08-11 09:56 zuytong 阅读(58) 评论(0) 推荐(0) 编辑
摘要:0. 引入 快速沃尔什变换(FWT) 是用来解决位运算卷积的算法,形如: Ck=ij=kAi×Bj 其中, 代表位运算中的某一种 1. 转化 回顾 FFT/NTT,加法卷积是将表达式转化成点值,相乘后再转化回来 那我们考虑构造 阅读全文 »
posted @ 2022-06-02 15:12 zuytong 阅读(147) 评论(0) 推荐(0) 编辑
摘要:拆系数FFT 在之前,我们用 原根 代替 单位根,实现了比 FFT 更快的 NTT 但 NTT 的限制比较大:模数能表示为 a×2k+1,通常这个 k 要求大于 16 如果我们换了一个不太友好的模数(如 109+7, 19190817),似乎 NTT 阅读全文 »
posted @ 2022-04-26 15:50 zuytong 阅读(75) 评论(0) 推荐(0) 编辑
摘要:分治FFT 例题传送门 solution-1:多项式求逆 我们考虑构造函数 f(x)=i=0f[i]xi, g(x)=i=0g[i]xi f(x) 就是目标函数,g(x) 就是题目给出的函数,但这里我们令 \( 阅读全文 »
posted @ 2022-04-25 21:47 zuytong 阅读(42) 评论(0) 推荐(0) 编辑

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