随笔分类 - ☺模板
摘要:(他羊) Tarjan是一种dfs算法。 有向图的强联通分量 如果一个有向图的子图中,任意两点可以相互到达,那么这就组成了一个强联通分量。 在Tarjan算法中,需要维护一个栈stk, 每个节点有两个值:dfn[],即dfs序;low[],表示这个节点最多经过一条横叉边能到达的dfn最小的点的dfn
阅读全文
摘要:qwq 拓扑排序模板题。 拓扑排序,是在一个$DAG$中,其拓扑排序为其所有结点的一个线性排序(答案不唯一)。 该排序满足这样的条件——对于图中的任意两个结点$u$和$v$,若存在一条有向边从$u$指向$v$,则在拓扑排序中$u$一定出现在$v$前面。 就好比一张流程图,必须完成这一步之前的所有步骤
阅读全文
摘要:今天模拟惨啊...被数论水题虐炸了...+红名祭 定理 若有 𝑝1, 𝑝2 … 𝑝𝑛 互质,则对于同余方程组: 𝑥 ≡ 𝑎1 𝑚𝑜𝑑 𝑝1 … 𝑥 ≡ 𝑎𝑛 𝑚𝑜𝑑 𝑝𝑛 在模 𝐿𝐶𝑀 = 𝑝1 ∗ ⋯ ∗ 𝑝𝑛 的
阅读全文
摘要:cdq(陈丹琦)分治,是一种类似二分的算法。基本思想同分治: 它可以顶替复杂的高级数据结构,但必须离线操作。 N维偏序,就是求N个关键字下的顺/逆序对。cdq分治是这类题中常用的降维手段。 一维偏序 学习归并排序时,我们了解到它的一个特性就是可以用来求逆序对。 Luogu P1908 逆序对 voi
阅读全文
摘要:这个人讲的特别好:「分块」数列分块入门1 – 9 by hzwer 分块是一种暴力数据结构,可以处理区间操作等问题。 分块,就是分很多块来进行处理,这样查询时可以直接调用整块信息+暴力查询左右两端信息,将线性的枚举优化。 要分块,首先要确定块的大小。 一般来说,块的大小都为√n。这样可以保证整个序列
阅读全文
摘要:qwq 预处理出从$x$节点向上跳2i个节点的序号$p[x][i]$及节点深度$dpth[x]$, 寻找$lca$时,从$Max$(可能的最大深度)到0枚举$i$, 首先把较深的一个节点向上跳至深度相同, 然后两个点同步动作,若$p[x][i]≠p[y][i]$则跳。 最终返回他们的父亲$p[x][
阅读全文
摘要:((^ 0.0 ^) )~ 堆是一个完全二叉树,对于小根堆,所有父节点<=子节点,下标就和线段树是一样的 在STL里就是优先队列 只有堆顶元素可以操作(询问或弹出)。 加入新元素时x,heap[++size] = x,下标t=size; 每次比较它和父节点(t/2)的大小,如果它较小就swap。 删
阅读全文
摘要:传送门 多重背包板子题, 多重背包就是每种东西有好几个,可以把它拆分成一个一个的01背包 优化:二进制拆分(拆成1+2+4+8+16+...) 比如18=1+2+4+8+3,可以证明18以内的任何数都可以用这几个数的和表示, 所以就把2个,4个....绑定为一个物品,和一个一个的效果是一样的 这样就
阅读全文
摘要:关于埃氏和其他算法 欧拉算法 void Prime(int N) { for(int i=2; i<=N; i++) { if(!check[i]) prime[cnt++]=i; for(int j=0; j<cnt && prime[j]*i<=N; j++) { check[prime[j]*
阅读全文
摘要:传送门(ST表裸题) ST表是一种很优雅的算法,用于求静态RMQ 数组l[i][j]表示从i开始,长度为2^j的序列中的最大值 注意事项: 1.核心部分: for(int j = 1; (1<<j) <= n; j++) for(int i = 1; i+(1<<j)-1 <= n; i++) {
阅读全文
摘要:qwq dij其实和prim挺像的,prim是找权值最小点,dij是找边, 用一个优先队列就可以在加入边的时候直接排序,避免了每次遍历更新min priority_queue <pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> >
阅读全文
摘要:qwq $kruskal$算法 按边权从小到大排序,并查集合并即可。 #include<cstdio> #include<algorithm> using namespace std; int fa[200005]; int n,m; struct abc { int from,to,w; } q[
阅读全文
摘要:传送门 求ax%b = 1,即ax - by = 1; 很明显这是一个exgcd的形式。 那么要做这道题,首先需要gcd和exgcd的算法作铺垫。 gcd(辗转相膜法): exgcd就是在求出gcd的基础上,求出ax+by = gcd(a,b)的一组x,y的解: 这个算法的原理如下: 当b=0时,g
阅读全文

浙公网安备 33010602011771号