![](https://img-blog.csdnimg.cn/20210808215919915.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
我的算法模板
文章平均质量分 69
记录两年来学习算法的模板
谁砍了我的二叉树
嘻嘻,加油^0^~
展开
-
基础算法
基础算法根据数据范围推算法常用的STL高精度二分查找排序算法前缀和与差分小顶堆求日期约瑟夫环问题单调队列字符串里取数字KMP字典树马拉车算法字符串哈希博弈论Nim游戏台阶-Nim游戏位运算快读 根据数据范围推算法 常用的STL 1.stack<T> s; push,pop,empty,size; 2.queue<T> q; push,pop,front,back,empty,size; 3.priority_queue<T> q; push,pop,top,empty原创 2021-08-08 22:03:13 · 136 阅读 · 0 评论 -
数论算法
数论算法快速幂矩阵快速幂逆元欧几里得算法(gcd)扩展欧几里得算法(exgcd)质数欧拉函数约数组合数高斯消元威尔逊定理组合数小推论小结论 快速幂 //快乘+快幂 ll mul(ll x,ll y) { ll ans=0; while(y!=0){ if(y&1==1)ans+=x,ans%=mod; x=x+x,x%=mod; y>>=1; } return ans; } ll fp(ll b, ll p) { ll r = 1; while (p原创 2021-08-08 22:08:20 · 169 阅读 · 0 评论 -
图论算法
图论算法存图BFSDijkstra弗洛伊德Bellman_FordSPFASPFA判断负环Prim拓扑排序并查集带权值的并查集全员最短路N皇后二分图的判断二分图最大匹配(匈牙利算法)树的直径树的重心树上最远距离分层图最短路最短路径数最小覆盖圆难点算法严格次小生成树LCATarjan 存图 //邻接表 int h[N],w[N],e[N],ne[N],idx; void add(int a,int b,int c){ e[idx] = b,w[idx] = c,ne[idx] = h[a],h[a]原创 2021-08-08 22:18:35 · 187 阅读 · 0 评论 -
区间算法
区间算法线段树树状数组扫描线莫队分块ST表 线段树 单点修改 #include <bits/stdc++.h> using namespace std; const int maxn = 500005*4; //线段树范围要开4倍 struct Tree{ int l,r,sum,maxx; }; Tree node[maxn]; int a[maxn]; void PushUp(int i){ node[i].sum = node[i<<1].sum+node[(i&l原创 2021-08-08 22:21:28 · 248 阅读 · 0 评论 -
动态规划
动态规划背包问题最长上升子序列最长公共子序列最短编辑距离区间DP计数类DP状态压缩DP树形DP 背包问题 背包恰好装满的情况: 1.装满价值总最大 memset(dp,-0x3f,sizeof dp);dp[0] = 0; dp[i]<0的话就是装不满 2.装满价值总最小 memset(dp,0x3f,sizeof dp); dp[0] = 0; dp[i]==0x3f3f3f3f的话是装不满 //1.01背包:一些物品选或不选 int n,m,v[N],w[N],s[N],dp[N]; //v是体积原创 2021-08-08 22:30:25 · 125 阅读 · 0 评论