Loading

乱记

2024.8.9

\[x\times x^{\underline{k}}=x^{\underline{k+1}}+kx^{\underline{k}} \]

普通幂转下降幂——数学归纳证明

\[\def\a#1#2{3#1 3#2} \a{c}{d} \]

\[求[x^n](\sum_{i}a_ix^i)(\sum_{i}b_ix^i)\\可以考虑枚举左侧的项,找到对应的右侧的项,而不用真正将这个展开形式求出来。\\(有时求不出来) \]

二维线性DP用区间DP的四边形不等式优化:记录详情 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

关心全局与关心最值的转换:\(\forall a_i\le x\implies\max(a_i)\le x,\cdots\)

2024.8.10

  • Shopping那道题可以按照dfn DP:子树DP->序列DP

  • 组合意义那一道题是因为v的次数最高只有n,其他都只是处理系数,所以直接乘就可以。

  • 在总共 \(n\times n\) 个值中除 \(O(n)\) 个值以外操作,相当于整体操作后在对 \(O(n)\) 个值逆操作

  • \(\small点分治\Large\longleftrightarrow \small树上启发式合并\)

    \(n^2\to n\log n\)

    划分

    离散

    分治:点分治:递归层数最少(类似二分型分治),树上启发式合并:每次带着继承的重儿子的信息暴力找其轻儿子(类似序列启发式分裂)

2024.8.12

反演:逆运算

子集卷积

至少->恰好->至多

\[\forall k\in\N,{-1\choose k}=(-1)^k \]

2024.8.13

EGF OGF
乘法
EXP

2024.8.15

DGF,迪利克雷生成函数——yzy

偏序集莫比乌斯反演——yzy

埃氏筛复杂度证明——nzy

一个乱搞——lph

num(x=d)=num(d|x)-num(d|px)——way

符号化方法——way

2024.8.18

并查集:路径压缩、启发式合并、随机合并,复杂度都是对的。

线段树:结合律,可直接计算贡献

两倍空间线段树:index(L,R)=L+R|L!=R

2024.8.19

将一大部分进行操作可以转换为全局操作加上对另一小部分逆操作

2024.8.20

A 修改 B 查询,可以变为修改会造影响的地方再单点查询。

比如:

  • 单点修改前缀查询<--->后缀修改单点查询

  • 单点修改链查询<--->子树修改单点查询

如果询问 \(x\) 的限制是 \(\forall i\le x\) ,则可以离线扫描线,所以 \(\forall i\in [l,r]\) 如果可拆为前缀,那么也可以这么做。


线段树分治、回滚莫队:无法难以删除只能撤销的操作。


长链剖分与重链剖分。

一个使得保证链长度,一个保证跳轻边数量。除了k级祖先,似乎还没有感受到长链剖分的独特优势。


DFN求LCA(与欧拉序求LCA不同)

冷门科技 —— DFS 序求 LCA - 洛谷专栏 (luogu.com.cn)

相当于找


泰勒展开

使得导数的与原函数相等。

拉格朗日余项——不断使用柯西中值定理。

\(x_0=0\)时的级数:麦克劳林级数


做题方法

  • 记录思路和回顾(便于思路变形)

  • 强制换角度(新思路)

  • 代数几何转化(形式化清晰思路)


矩阵乘法线段树

\(C\times\vec a+C\times\vec b=C\times(\vec a+\vec b)\)

\(A\times \vec c+B\times \vec c=(A+B)\times \vec c\)


kruskal重构树

对每次最小生成树的边建立点,点权等于边权,并用这个点代表合并的集合

构成了一个 \(n\) 个叶子的二叉树

一个合并过程。

例题:到x最短路<=y的节点数

每个最小生成树组成的边的可重集相同。


压位trie

插入删除、前驱后继

可以做到接近 \(O(1)\)


静态树上链整体操作->树上差分

2024.8.21

一个思路:什么时候做贡献!这个怎么做贡献,那个怎么作贡献。


降维方式:

扫描线(配合数据结构)、排序(解决相对大小关系)、CDQ


分治:

使得两边独立。


CDQ分治

分治计算,使得我们只需要考虑跨越中间的部分答案,而不需要考虑整个情况。这样就只需要保证两边的相对大小。

具体情况下,可以考虑让左边产生贡献,让右边计算贡献,以树状数组求解

想方法归纳到偏序问题上。

CDQ优化DP(一维的时候就是树状数组优化DP,二维的时候用CDQ消维)

要求做贡献的时候一定将DP值确定下来。(以“左中右”的顺序更新)


整体二分

首先是二分答案,对于所有询问判断答案是否可行。

必须将做贡献与计算贡献(查询)同时二分,不得调用 \(n,m,q\) 等极大全局变量。

其中二分修改时,分为必定做出贡献与不能做出贡献进行处理。

如果贡献是动态的修改,应保证时间有序。


线段树合并

三种情况

  1. 对应位置相加

  2. 一边合并一边更新所穿的传参数[minimax]

  3. 需要先合并左子树,再利用左子树的信息合并右子树。


KDT

查询矩形复杂度 \(\mathcal O(\sqrt n)\)。即期望访问 \(O(\sqrt n)\) 块平面。

本质:一种搜索,靠剪枝来骗分

KDT优化建图

类似线段树优化建图。


如果算法以\(A\xrightarrow{建出结构}B\xrightarrow{优化}C\),则有时无需将 \(B\) 显式 建出来,而是考虑如何直接优化。

如:[NOI2019弹跳],\(KDT\xrightarrow{建出结构}图\xrightarrow{优化}最短路\)

可以直接 \(KDT\)优化最短路, 复杂度减小一个$\log $


线段树优化建图上Dij的更优算法。

不用显式建图,每次通过线段树\(O(1)\)获得最值所在位置,对所连的 \(c_i\log n\) 个节点直接打tag,然后重复执行,因为每个节点只会取一次,复杂度 \(\mathcal O(n+m\log n)\),这里避免了每次将多个取值等价的节点放入优先队列,使得队列里存的数从 \(m\log n\) 变为 \(m\)


二进制分组:静态数据结构动态化


根号分治:乘积总数有限。

2024.8.22

超级原点(有时也可以加上超级汇点),化多元最短路为单源最短路。

可以结合分治使两边独立。

2024-8-22 8-34-44.JPG

最短路径树/图

对所有使得 \(dis_v=dis_u+v(u,v)\) 成立的 \((u,v)\) 连边就是图。对于每个 \(v\) 只连一条就是树。

常用于简化动态变化的最短路问题。


必走某边最短路

必走 \((u,v)\),则 \(dis(x,y)=mindsis(x,u)+v(u,v)+mindis(v,y)\),再反过来求一遍。


同余最短路

一种优化建图。构建同余下的等价关系。


差分约束

限制 \(x_i-x_j\le w(i,j)\)

注意题目的隐含限制。


Johnson全员最短路(可以有负权)

Johnson费用流


boruvka最小生成树


kruscal重构树


曼哈顿距离最小生成树

给定平面 \(n\) 个点,求曼哈顿距离的最小生成树

  1. 可以仿照 K - 道路建设 的方式建主席树。

  2. 支配对?


完全图最小生成树问题:最优性销边Kruskal


点分治

如果对于书上每一组 \((x,y)\) ,其贡献都是 \(w_x+w_y-v_{lca(x,y)}\) 则可以使用点分治。


Kosaraju强连通

在一个点结束递归的时候加入序列,然后倒序遍历这个序列,在反图上DFS,所有能跑到的点即为SCC

算法在稠密图上,可以用bitset加速,做到 \(\mathcal O(\frac {n^2}{w})\)


点双---->圆方树

方圆相连,构成二分图。(二分树?)

叶节点都是圆点

仙人掌可以完全转化为树只是需要增加码量+分类讨论

并且圆方树是有根树。


如果图论题中的部分分有 \(m=n-1\) 那么多半正解与树的情况有关


建虚点其实是为了凑条件,使用一个算法对图的结构有一定要求,建虚点可以凑出。


竞赛图:

\(n\) 个点的有向完全图,缩点后为一条链,必定有一个哈密顿通路。强连通时,有哈密顿回路。

蓝道定理:

将出度序列从小到大排列的

求强连通竞赛图哈密顿回路的方法:


通过图中所有顶点一次且仅一次的通路称为哈密顿通路,通过图中所有顶点一次且仅一次的回路称为哈密顿回路

posted @ 2024-08-09 17:02  lupengheyyds  阅读(33)  评论(0)    收藏  举报