无聊的时候氵一些小套路

快一个月不更博的时候氵一篇博客

分治

https://www.cnblogs.com/flashhu/p/9874012.html

图论

边数小于点数的无向连通图是一棵树nmdwsmduliuyyb

所有简单环都是奇环的图是仙人掌。

竞赛图缩点之后是一条链。

(边权都是1)任意两点间最大流不超过x的图可以划分为不超过x个生成森林。

看到平面图(包括网格图)的时候想一想对偶图转化。

费用流增广的时候,每一次做完之后的费用和是一个凸函数,可以利用这个性质做一些二分之类的事情。模拟费用流类问题的贪心正确性也可以尝试着从费用流模型推导过来。

Dilworth定理

最长反链长度=最小链覆盖数

涉及很多概念,看这个博客

MST

一张图的所有可能的MST中,每一种边权的数量都分别是一样的;

Kruskal加边的时候,对于同样边权的边,无论它们中间以什么顺序加边,最后的连通性都是一样的。

MST有不少性质,在某些题里面,可以巧妙地对边重赋权、更改端点等而不影响MST,最后更方便的求解答案。

数学

Stirling数

第一类Stirling数可以用一个卷积表示,$$s(n,m)=x^m$$

对于给定n求所有s(n,m)的朴素方法是分治FFT,但这个式子可以通过倍增O(nlogn)求出。

假设我们求出了Ft(x)=i=1n(x+i),现在要求Ft+1(x)=i=12n(x+i),我们有

Ft+1(x)=Ft(x)Ft(x+n)Ft(x+n)=i=0nai(x+n)i=i=0nj=0iai(ij)xjnij=i=0nj=0ii!aixjj!nij(ij)!=j=0nxjj!i=jni!ainij(ij)!=j=0nxjj!i=0nj(i+j)!ai+jnii!

两遍FFT就出来了。


关于幂、组合数和第二类Stirling数的两个很常用的式子,似乎有着美妙的联系

mn=i=1mi!S(n,i)C(m,i)
S(n,m)=1m!i=1m(1)miC(m,mi)in

因为幂(mn)的组合意义就是n个有标号球放到m个有标号盒子的方案数,Stirling数是放到无标号盒子且盒子非空的方案数,所以就可以用组合意义解释第一个式子:

球有序盒有序允许空盒的方案数,等于枚举非空盒的个数i,将盒无序的方案数乘上阶乘使其有序,再乘上从所有盒中选出这i个的组合数(或者直接说是排列数也行)。

第二个式子似乎就是倒着考虑这个组合意义,每次从允许空盒方案中减去有盒为空的方案数,再除掉阶乘使其无序。

这样联系起来似乎好记多了。

计数

Matrix-Tree定理

无向图:求的是图的生成树个数。

度数矩阵-邻接矩阵,即对于边(u,v)++a[u][u],++a[v][v],--a[u][v],--a[v][u]

任意消去一行一列求一个代数余子式的值。

有向图:求的是树形图个数,需要区分外向树和内向树。

内向树是入度矩阵-邻接矩阵,即++a[u][u],--a[u][v],外向树把边反过来就行了。

消去第i行第i列可以求出以i为根的树形图个数。

字符串

一些性质

KMP的next和回文树的fail都可以划分成log段等差数列。

SA

用二哈求SA的时候请使用stable_sort

蒟蒻猜测sort的底层实现主要是快速排序,stable_sort主要是归并排序。

基于猜测,它相比sort有两倍的空间占用,但比较次数少。在比较为算法复杂度瓶颈时常数小了一大截。窝和Cgod都有过被卡的经历。。。

posted @   Flash_Hu  阅读(1143)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
西雅图
17:14发布
西雅图
17:14发布
6°
东南风
3级
空气质量
相对湿度
84%
今天
3°/13°
周六
小雨
6°/15°
周日
中雨
4°/15°