【古谷彻】算法模板(更新ing···)

目录

一、数学

1、逆元

(一)费马小定理/欧拉定理(快速幂)

2、组合数

(1)求组合数C(n,m)

方法一:阶乘+逆元+快速幂求组合数

方法二:记忆化搜索

方法三:递推公式

(2)组合数求概率 

3、高精度sqrt

 (1)二分法

(2)递加递减

4、快速幂

5、欧拉函数

 方法一:埃氏筛

方法二:欧拉筛

6、 质数筛

方法一:欧拉筛

7、质数判断

8、欧拉常数

9、线性基 

形式一:数组

1、处理线性基

2、最大异或和

3、最小异或和

形式二:容器 

二、数据结构 

1、并查集

(1)普通并查集

优化一:路径压缩(会破坏树结构!!!

优化二:启发式合并(不压缩路径,保持树结构!!!

形式1:按高合并

形式2:按集合大小合并

优化三: 压缩路径+启发式合并

(2)带权并查集

(3)种类并查集——维护循环对称关系 

两种关系:

三种关系: 

(3)可撤销并查集(看不懂。。。 

2、启发式合并

3、字符串哈希

形式一:单哈希

4、线段树 

(1)单点修改,区间查询

(2)区间修改,区间查询

5、线段树进阶

(1)线段树区间染色 

6、树状数组 

(1)单点修改,区间查询

(2)区间修改,单点查询 

(3)求逆序对数量

7、分块 

8、树链剖分

9、RMQ问题(区间最值)

三、动态规划

1、背包问题

(1)0-1背包问题

(2)完全背包问题 

(3)多重背包问题

(4)混合背包问题 

(5) 分组背包问题

2、 状态压缩dp

四、图论

1、图的存储

(1)邻接矩阵

(2)邻接表

(3)链式前向星

2、二分图最大匹配

 (1)匈牙利算法

方法一:邻接矩阵

方法二:链式前向星(注意数组及边的标号问题!!!) 

(2)KM算法 

3、最小点覆盖

4、最短路

(1)Dijkstra算法

方法一:链式前向星+优先队列

(2)Floyd算法 

(3)Bellmon-Ford算法 

(4)SPFA算法 

5、拓扑排序 

6、完全N叉树 

(1)完全N叉树的性质

1)编号从0开始

A、结点间编号关系

2)编号从1开始

A、结点间编号关系

五、字符串

六、STL

1、优先队列—priority_queue

2、双端队列——deque

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古谷彻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值