自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 积性函数和杜教筛

常见积性函数:(p,q)=1⇒f(pq)=f(p)f(q), g(pq)=g(p)g(q)h(pq)=f(pq)g(pq)=f(p)g(p)⋅f(q)g(q)=h(p)h(q) (p,q)= 1\Rightarrow f(pq)=f(p)f(q),\ \ g(pq)=g(p)g(q)\\ h(pq)=f(pq)g(pq)=f(p)g(p)\cdot f(q)g(q)=h(p)h(q)(p,q)=1⇒f(pq)=f(p)f(q), g(pq)=g(p)g(q)h(pq)=f(pq)g(pq)=f(p

2022-07-12 22:02:58 155 1

原创 FFT与拉格朗日插值

​ 等形式,C(x)C(x)C(x) 的前 n+1n+1n+1 项的系数 c0,c1,…,cnc_0, c_1, \dots, c_nc0​,c1​,…,cn​ 仅仅需要 A(x),B(x)A(x), B(x)A(x),B(x) 的前 n+1n+1n+1 项系数就可以计算。多项式 A(x),B(x)mod  xn+1A(x), B(x) \mod x^{n+1}A(x),B(x)modxn+1 代替形式幂级数 A(x),B(x)A(x), B(x)A(x),B(x)。朴素多项式乘法、求逆、开根号等的复杂

2022-07-09 13:32:58 521 1

原创 生成函数Ⅰ

设 A(x)=∑i≥0aixiA(x)=\sum_{i\ge 0}a_ix^iA(x)=∑i≥0​ai​xi,B(x)=∑i≥0bixiB(x)=\sum_{i\ge 0}b_ix^iB(x)=∑i≥0​bi​xi。例子:令A(x)=∑i≥0aixi,B(x)=∑i≥0bixi。则ck=∑i=0kaibk−iC(x)=∑k≥0∑i=0kaibk−ixk=A(x)×B(x) 令 A(x)=\sum_{i\ge 0}a_ix^i,B(x)=\sum_{i\ge 0}b_ix^i。\\ 则 c_k=\s

2022-07-06 14:02:43 136

原创 Link Cut Tree 应用五

2022年02月10日,第二十天1. 题目链接:P4219 [BJOI2014]大融合思路:LCTLCTLCT 解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) 。LCTLCTLCT 维护子树信息的模板题。总所周知,LCTLCTLCT 的实边形成的实链是用来维护树链信息的,除了实边之外,还存在着一种虚边,我们定义以下两个数组:isum[i]isum[i]isum[i] ,表示第 iii 个结点所有虚边连向的结点 jjj 的子树的结点隔宿;siz[i.

2022-02-10 00:47:03 388

原创 Link Cut Tree 应用四

2022年02月08日,第十八天1. 题目链接:P4234 最小差值生成树思路:LCTLCTLCT 加并查集解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) 。Warning!!!Warning!!!Warning!!! 这题有自环,搞得自闭了 QAQQAQQAQ。我们利用双指针的思想,求解最大值与最小值差值的最小值,当固定好了最大值,我们尽可能让最小值更大,这样差值就会变小,基于这个原则,我们枚举每一个最大值,换句话说,我们将边权排序,按边权从小到大枚.

2022-02-08 23:01:06 297

原创 Link Cut Tree 应用三

2022年02月06日,第十七天1. 题目链接:P2542 [AHOI2005] 航线规划思路:LCTLCTLCT 加并查集解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) 。我们发现正序删边是不好来维护连通性的,基于正难则反原则,我们可以离线处理,逆序完成操作。显然,每个点可以代表一个双连通分量,查询就是链的长度减一,也就是桥的数量。连接一条边,如果在 LCTLCTLCT 中还没连通就 linklinklink ,如果连通了,这里会出现一个环,然后我们.

2022-02-06 23:41:59 289

原创 Link Cut Tree 应用二

2022年02月04日,第十六天1. 题目链接:P2147 [SDOI2008] 洞穴勘测思路:LCTLCTLCT 在线解决,时间复杂度 O(mlog n)O(mlog\ n)O(mlog n) ,常数巨大。模板题,不必多言。#include <bits/stdc++.h>#define ull unsigned long long#define ll long long#define re register#define endl '\n'using .

2022-02-05 10:58:39 627

原创 Link Cut Tree 应用一

2022年02月03日,第十五天1. 题目链接:P3203 [HNOI2010]弹飞绵羊思路1:LCTLCTLCT 解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) ,常数巨大。已知题目的所有操作都与结点编号相关,我们将一个点 uuu 跳到另一个点 u+ku+ku+k 连一条边,表示被弹一次,由于弹出 nnn 号点即为弹飞,我们设 u+ku+ku+k 大于 nnn ,都为到 n+1n+1n+1 号点。这样我们 split(u,n+1)split (u, .

2022-02-03 21:41:30 743

原创 初识动态树—— Link Cut Tree

2022年02月01日,第十四天前言:以下笔记是参考博客:LCT总结——概念篇 (侵删)一、概念性质链剖分,是指一类对树的边进行轻重划分的操作,这样做的目的是为了减少某些链上的修改、查询等操作的复杂度。目前总共有三类:重链剖分,实链剖分和不常见的长链剖分。重链剖分,实际上我们经常讲到树剖,就是重链剖分的常用称呼。对于每个点,选择最大的子树,将这条边划分为重边,而连向其它子树的边划分为轻边。若干重边连接在一起构成重链,用树状数组或线段树等数据结构维护。实链剖分,同样将某一个儿子的连边划分为实边.

2022-02-01 21:35:06 627

原创 树链剖分——轻重链剖分

2022年01月27日,第十三天1. 题目链接:P3384 【模板】轻重链剖分/树链剖分思路:树链剖分直接搞,时间复杂度为 O(nlog2n)O(nlog^2n)O(nlog2n) ,通过模板题,我们可以了解到,树链剖分是用来划分树的路径的一个有效工具,它把任意两点之间的简单路径划分成 O(log n)O(log\ n)O(log n) 段线性区间,当我们得到 dfsdfsdfs 序之后套上线段树时,能够轻松地维护树上的某条链的信息。细节看代码注释。#include <b.

2022-01-28 01:05:30 809

原创 后缀系列例题五

2022年01月26日,第十二天后缀系列例题五1. 题目链接:P3181 [HAOI2016]找相同字符思路1:后缀数组加容斥原理解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n) ,首先我们将问题转化,所有相同子串的对数,相当于所有来自不同字符串后缀的 LCPLCPLCP 之和,这是为什么呢,其实是可以看成固定 LCPLCPLCP 的第一个字符,让后面的字符不断连接上去构成若干新方案,而这个方案数量就是 LCPLCPLCP 的长度。我们考虑构建后缀数.

2022-01-26 23:59:22 459

原创 后缀系列例题四

2022年01月25日,第十一天1. 题目链接:SP7258 SUBLEX - Lexicographical Substring Search思路:后缀自动机解决,时间复杂度 O(nT)O(nT)O(nT) ,根据后缀自动机从源点出发得到每个状态都是原串的子串,且不重不漏,那么我们先建出 SAMSAMSAM ,然后在拓扑序上 dpdpdp 出每个点的路径数,然后统计答案时就在自动机上 dfsdfsdfs ,类似平衡树找第 kkk 小那样做。#include <bits/stdc++.h&g.

2022-01-25 23:48:04 484

原创 后缀系列例题三

2022年01月24日,第十天1. 题目链接:P3763 [TJOI2017]DNAAmazing!!!Amazing!!!Amazing!!! 这题居然有四种思路解决。思路1:多项式解决,时间复杂度 O(nlog n)O(nlog\ n)O(nlog n),总共跑了 121212 次 FFTFFTFFT ,常数过大,开 O2O2O2 才 ACACAC。由于 DNADNADNA 序列最多有 444 种不同的字符,我们可以考虑如下做法,分别考虑每一个字符 ccc ,对于两个串 s.

2022-01-24 22:06:31 1832

原创 后缀系列例题二

2022年01月23日,第九天后缀系列例题二1. 题目链接:P4051 [JSOI2007]字符加密思路:此题涉及到字符串排序,因此我们很容易能想到用 SASASA ,将原串拷贝一份到后面,这样原串长度变为原来两倍,直接上后缀数组按题目要求输出答案即可。#include <bits/stdc++.h>#define ull unsigned long long#define ll long long#define re register#define endl '\n'u.

2022-01-23 22:56:42 260

原创 后缀系列例题一

2022年01月22日,第八天后缀系列模板题借一张后缀自动机经典图片镇镇楼……1. 题目链接:P3804 【模板】后缀自动机 (SAM)思路:直接上 SAMSAMSAM ,然后做个基数排序倒序遍历求和即可,本质是作后缀树(后缀链接反向即是)的前缀和。换句话说,我们也可以建后缀链接的反向边求树上前缀和,再计算贡献。#include <bits/stdc++.h>#define ull unsigned long long#define ll long long#define .

2022-01-22 23:14:22 366

原创 初识SAM——后缀自动机

2022年01月20日,第七天后缀自动机(SAM)后缀自动机 是一个能解决许多字符串相关问题的有力数据结构。以下的字符串问题都可以在线性的时间复杂度内通过 SAMSAMSAM 解决。在另一个字符串中搜索一个字符串的所有出现位置。计算给定的字符串中有多少个不同的子串。直观上,字符串的 SAMSAMSAM 可以理解为给定字符串的所有子串的压缩形式。一些保证线性的性质:对于一个长度为 nnn 的字符串 sss ,它的 SAMSAMSAM 中的 状态数 不会超过 2n−12n - 12n−.

2022-01-20 22:47:48 1093

原创 平衡树例题

2022年01月19日,第六天平衡树若干练习……1. 题目链接:P3224 [HNOI2012]永无乡下面提供两种思路,第一种的时间复杂度是 O(n logn)O(n\ log n)O(n logn) ,第二种的时间复杂度是 O(n log2n)O(n\ log^2n)O(n log2n) ,本来两种算法的时间复杂度有挺大差异,但跑起来效率差不多,可能线段树合并常数稍大。思路一:权值线段树合并直接搞#include <bits/stdc++.h&g.

2022-01-19 23:47:04 802

原创 C-Shuffle Cards平衡树

2022年01月18日,第五天题目链接:C-Shuffle Cards_2021牛客国庆集训派对day3学了几个平衡树回去翻了翻国庆积分赛的题,发现原来就是模板题,只能说自己学太少了QWQ。下面提供三个思路,并且了解了平衡树实际上是用来维护树的中序遍历。思路一:使用 FHQ treapFHQ\ treapFHQ treap 直接移动区间#include <bits/stdc++.h>#define ll long longusing namespace s.

2022-01-18 22:53:42 400

原创 平衡树之 Splay 伸展树

2022年01月17日,第四天五. 平衡树—— SplaySplaySplay 伸展树伸展树之所以叫做伸展树,是因为其核心操作是伸展 (splaying)(splaying)(splaying) 。伸展就是把一个结点通过 旋转 调整到某个结点处,一般都是伸展到根结点。旋转就是 AVLAVLAVL 树中的左旋和右旋,不过在这里似乎有了更高级的名字:左旋 (ZAG)(ZAG)(ZAG) 和右旋 (ZIG)(ZIG)(ZIG) 。伸展树非常灵活,可以用它完成许多别的操作,诸如分裂,合并,区间操作,搞.

2022-01-17 22:52:31 336

原创 平衡树之文艺平衡树(维护区间)

2022年01月16日 第三天平衡树——文艺平衡树(维护区间)首先我们需要知道如何用 fhq Treapfhq\ Treapfhq Treap 来实现区间操作例如,要操作的区间为 [l, r][l,\ r][l, r] ,那么我们就在 fhq Treapfhq\ Treapfhq Treap 里把这一段直接 splitsplitsplit 拆出来进行操作然后再合并回去。按大小分裂:把树拆成两颗树,其中一颗树的大小等于给定的大小,剩余部分.

2022-01-16 22:16:31 1655

原创 平衡树之FHQ Treap(无旋)

平衡树——FHQ TreapFHQ\ TreapFHQ Treap(无旋)学习 fhq Treapfhq\ Treapfhq Treap 之前,要先了解普通的 TreapTreapTreap 是怎么回事。TreapTreapTreap ,就是 TreeTreeTree 加 HeapHeapHeap 。 它让平衡树上的每一个结点存放两个信息:值和一个随机的索引。其中值满足二叉搜索树的性质,索引满足堆的性质,结合二叉搜索树和二叉堆的性质来使树平衡。这也是 TreapT

2022-01-16 00:23:39 1344

原创 平衡树之替罪羊树

2022年01月14日,第一天平衡树——替罪羊树(无旋)核心操作:暴力重构,时间复杂度 O(log n)O(log\ n)O(log n)。结点,替罪羊树的每个结点需要储存这几个信息:左右子树编号当前结点的值以当前结点为根的树的大小和实际的大小删除标记struct node { int l, r, val; int size, fact; bool exist;}tzy[N];int cnt, root;void newnode (i.

2022-01-14 20:51:11 146

原创 计算几何学习笔记1

一. 二维几何基础在进行浮点数运算时会产生精度误差,为了控制精度,可以设置一个偏差值 eps(epeilon)eps(epeilon)eps(epeilon) ,epsepseps 要大于浮点数运算结果的不确定量,一般取 10−810^{-8}10−8 。如果题目要求的精度较高,我们也可以取 10−1010^{-10}10−10 。const double Pi = acos(-1.0); // 高精度圆周率const double eps = 1e-8; // 偏差值,有时候用 1e-10in

2021-09-29 13:54:49 237

原创 数论学习路线

数论学习大纲一. 数论学习笔记1整除同余最大公约数扩展欧几里得逆元二. 数论学习笔记2素数中国剩余定理扩展中国剩余定理欧拉定理三. 数论学习笔记3扩展欧拉定理大步小步算法(施工中)扩展大步小步算法(施工中)四. 数论学习笔记4积性函数和各种筛法(施工中)莫比乌斯反演(施工中)...

2021-09-25 10:31:55 394

原创 数论学习笔记3

一. 扩展欧拉定理定理描述:ax≡{ax mod φ(m)GCD(a, m)=1ax mod φ(m)+φ(m)GCD(a, m)≠1, x≥φ(m)(mod m)a^x \equiv \begin{aligned}\begin{cases}a^{ x\ mod\ \varphi(m)}& GCD(a,\ m) = 1& \\a^{ x\ mod\ \varphi(m) + \varphi(m)

2021-09-25 01:04:13 143

原创 数论学习笔记2

数论2一.素数素数筛法-埃氏筛法原理:素数的整数倍是合数时间复杂度为:O(nlog n)O(nlog\ n)O(nlog n) 。const int N = 1e6 + 5;int p[N], cnt;bool isp[N];void make_prime(int n = N - 5) { memset(isp, true, sizeof(isp)); isp[0] = isp[1] = false; for (int i = 2; i

2021-09-16 18:38:10 269

原创 数论学习笔记1

数论1.1 整除如果 a ∣ ba\ |\ ba ∣ b 且 b ∣ cb\ |\ cb ∣ c ,那么 a ∣ ca\ |\ ca ∣ c 。a ∣ ba\ |\ ba ∣ b 且 a ∣ ca\ |\ ca ∣ c 等价于对任意的整数 xxx 和 yyy ,有 a ∣ (b

2021-09-15 15:38:28 377 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除