合集-学习笔记

摘要:插板法 问题一:现有 n 个 完全相同的元素,要求将其分为 k 组a,保证每组至少有一个元素,一共有多少种分法? 考虑拿 k1 块板子插入到 n 个元素两两形成的 n1 个空里面。 所以答案就是 (n1k1)问题二:如果问题变 阅读全文
posted @ 2023-06-20 21:36 _bloss 阅读(59) 评论(3) 推荐(5) 编辑
摘要:[CQOI2007] 余数求和 求 G(n,k)=i=1nkmodi 因为 kmodi=kkii 所以就成了求 \(n*k-\sum_{i=1}^{n}\lfloor \frac{k}{i}\rflo 阅读全文
posted @ 2023-08-13 20:47 _bloss 阅读(19) 评论(2) 推荐(6) 编辑
摘要:一种离线处理方法 可以处理“具体哪个修改对询问有影响”、可以贡献不独立、可以支持插入删除。 例题 对这道题来说,对修改开线段树,线段树上每个节点开一个 vector 来维护出现在这段区间的线段,加入一个线段的区间,直接在区间查询时对所包含的节点压入这条线段就可以。 然后从根节点递归,先左子树 阅读全文
posted @ 2023-09-20 17:15 _bloss 阅读(33) 评论(0) 推荐(3) 编辑
摘要:拉格朗日插值 就像三个点可以确定一个二次函数,呢么 n+1 个点可以确定一个 n 项式。 问题:给定 n+1 个点以及对应的函数值,求 fk。 高斯消元的复杂度 n3,拉格朗日插值可以 n2 解决这个问题 表达式:\(f(x)=\sum\li 阅读全文
posted @ 2023-10-19 06:44 _bloss 阅读(19) 评论(0) 推荐(2) 编辑
摘要:二分图最大匹配: 定义:给定一个二分图 G,即分左右两部分,各部分之间的点没有边连接,要求选出一些边,使得这些边没有公共顶点,且边的数量最大。 方法:Dinic 二分图的最小顶点覆盖 定义:假如选了一个点就相当于覆盖了以它为端点的所有边。最小顶点覆盖就是选择最少的点来覆盖所有的边。 定理:图 阅读全文
posted @ 2023-10-24 19:58 _bloss 阅读(41) 评论(2) 推荐(2) 编辑
摘要:感觉可以理解为带修点分治。 常用于解决与树原形态无关的带修改问题。 —— oi-wiki 点分树是通过更改原树形态使树的层数变为稳定 logn 的一种重构树。就是通过点分治找重心的方式,将这一层重心为上一层重心的儿子。 所以对于很多暴力的复杂度是正确的。 一开始发现建树错了,然后发现是原 阅读全文
posted @ 2023-11-02 21:29 _bloss 阅读(36) 评论(0) 推荐(4) 编辑
摘要:最大流 code int head[N],nex[N*N*8],ver[N*N*8],edge[N*N*8],tot=1; void add(int x,int y,int v){ ver[++tot]=y,nex[tot]=head[x],head[x]=tot,edge[tot]=v; ver[ 阅读全文
posted @ 2023-12-05 09:16 _bloss 阅读(21) 评论(0) 推荐(4) 编辑
摘要:四边形不等式 对于任意的 l1l2r1r2,满足 w(l1,r1)+w(l2,r2)w(l1,r2)+w(l2,r1) 。 若等号恒成立,则称函数 w 为四边形恒等式。交叉小于包含。 如何证明 若满足 \(w(l,r-1 阅读全文
posted @ 2023-12-20 16:37 _bloss 阅读(60) 评论(0) 推荐(4) 编辑
摘要:后缀排序 倍增+基数排序 code bool cmp(int x,int y,int k){ // 常数优化,使访问连续 if(oldrk[x]==oldrk[y] && oldrk[x+k]==oldrk[y+k]) return 1; else return 0; } void get_sa() 阅读全文
posted @ 2023-12-26 10:12 _bloss 阅读(25) 评论(0) 推荐(3) 编辑
摘要:manacher 对于奇串,考虑维护一个具有最大 r 值的回文串 (l,r),每次考虑一个新增加的点 i。若 i>r 那么直接暴力计算就可以;如果 in,设 mid=(l+r)/2,那么 i 点关于 mid 对称点 \( 阅读全文
posted @ 2023-12-26 21:36 _bloss 阅读(15) 评论(0) 推荐(2) 编辑
摘要:SAM 定义 字符串 sSAM 是一个接受 s 的所有后缀的最小 DFA(确定性有限自动机或确定性有限状态自动机)。 endpos(t): 子串 t 在原串 s 中所有出现位置(最后一个字符位置)的集合。 \(\math 阅读全文
posted @ 2024-01-01 08:21 _bloss 阅读(11) 评论(0) 推荐(3) 编辑
该文被密码保护。
posted @ 2024-01-07 12:11 _bloss 阅读(1) 评论(0) 推荐(2) 编辑
摘要:f(n)g(n) 是定义在整数集上的两个函数,满足一下关系: f(n)=dng(n)但是手摸发现不仅可以从 gf,还可以 fg,发现还满足这个关系: \[g(n)=\sum 阅读全文
posted @ 2023-08-14 06:47 _bloss 阅读(41) 评论(0) 推荐(3) 编辑
摘要:杜教筛 处理数论函数的前缀和问题,可以在低于线性的复杂度里求出 S(n)=i=1nf(i)。 对于任意一个数论函数 g,必须满足 : \[\sum_{i=1}^{n}(f*g)(i)=\sum_{i=1}^{n} \sum_{d \mid i} g(d)*d(\ 阅读全文
posted @ 2024-01-21 19:45 _bloss 阅读(28) 评论(0) 推荐(3) 编辑
摘要:二项式反演 证明 我们设 g(x) 为任意 x 个集合的交集的大小, f(x) 表示任意 x 个集合补集的交集大小。 首先有 (组合数学6.2) \[|\overline{S_1}\cap\overline{ S_2}\cap...\cap \overline{S_{ 阅读全文
posted @ 2024-02-02 09:42 _bloss 阅读(30) 评论(0) 推荐(5) 编辑
摘要:笛卡尔树是一种二叉树,每一个节点由键值二元组 (k,w) 构成, k 满足二叉搜索树的性质, w 满足堆的性质。 构建 我们可以用一个栈进行构建,假如我们想要求 k 满足二叉搜索树的性质,那么我们首先需要按 k 从小到大排序,然后一个一个插入;假如我们想要 \ 阅读全文
posted @ 2024-02-06 14:58 _bloss 阅读(27) 评论(0) 推荐(4) 编辑

点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题