12 2021 档案
摘要:首先对于排列的每个数,只有部分数会对 \(S\) 产生贡献。 所以不难得到一个直接 DP 的方法,我们定义状态 \(f_{i,j,0/1}\) 表示 \(x\) 左边选了 \(i\) 个,\(x\) 右边选了 \(y\) 个,\(S\) 结尾是 "HI" 还是 "LO",产生了多少 "HILO"。但
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的莫队。 莫队算法是对一类暴力的优化。 如果我们能够在 \(\rm O(1)\) 的时间内由 \([l,r]\) 的答案推出 \([l\pm1,r\pm 1]\) 的答案,就可以考虑使用莫队。 我们对询问排序,首先将序列分为$\sqrt{
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的二分图/网络流。 【模板】二分图最大匹配 给定一个二分图,需要找出最多的不相交的边。 比较简单的方法是匈牙利算法,每次找增广路然后直接增广即可。时间复杂度是$\rm O(NM)$。 #include<cstdio> #include<c
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的最短路问题。 最短路是图论一个经典模型,也是OI种的常考模型。 例题1:单源最短路径 对于只有正边权的图,\(\texttt{Dijkstra}\) 是目前最优的做法。 我们用堆维护当前图中 \(\texttt{Distance}\)
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的虚树/长链剖分。 虚树和长链剖分都可用于一类 树形$\rm DP$ 的优化。 Part 1:虚树 特点,多次询问,每次询问包括树上的$k$个点,$\sum k \le 2\times 10^6 $ 在可承受范围内。 对于每个询问,只包括
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的矩阵/线性基。 P3390 【模板】矩阵快速幂 模板。 矩阵乘法是$N3$的,快速幂是$\log T$,总的时间复杂度为$\rm O(N3\log T)$。 #include<bits/stdc++.h> #define rep(i,a
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的生成树。 P3366 【模板】最小生成树 从小到大排序,能加边则加边。 结论:任意一条没有加的边$u -v$,最小生成树上$u$和$v$之间路径上的边权一定不大于当前边的边权。 证明:反正,如果存在一条大于,我们可以加入当前边而删去最大
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的字符串。 P3370 【模板】字符串哈希 字符串哈希,一般 \(\rm H(S)=\sum\limits_{i=1}^{Len}bas^{Len-i}\times S_i \bmod P\)。这样我们对一个字符串预处理出它的前缀哈希值和
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的树上问题。 树上问题是$\rm OI$中必考的难点。 P5018 [NOIP2018 普及组] 对称二叉树 判断带点权有根二叉树是否同构。 因为有根且是二叉树,这极大简化了判断同构的过程。 我们定义函数 bool check(int x
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的基础多项式。 P3803 【模板】多项式乘法(FFT) 快速傅里叶变换$\rm FFT$,时间复杂度$\rm O(N\log N)$。 #include<bits/stdc++.h> #define rep(i,a,b) for(int
阅读全文
摘要:P5104 红包发红包 在$[0,w]\(中等概率发出一个红包,期望发出一个\)\dfrac{w}{2}\(的红包,即可以看成每次发出\)\dfrac{w}{2}$的红包。答案就是 \(w\times 2^{-k}\) 。 Code P7385 「EZEC-6」跳一跳 期望$E=\sum p(x)v
阅读全文
摘要:P3387 【模板】缩点 \(\rm Tarjan\) 算法求线性求强连通分量。 算法的核心在于时间戳和栈的维护。 我们将每个强连通分量缩成一个点,将得到一个有向无环图$\rm DAG$,就可以在上面跑$\rm DP$。 #include<bits/stdc++.h> #define rep(i,a
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的基础数论。 CF1355F Guess Divisors Count 交互题,给定$X\le10^{9}\(,每次可以询问\)\gcd (X,Q_i)$,\(Q_i\le 10^{18}\),并在 $22 $ 次询问内求出 \(X\)
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的组合数学。 由于作者非常菜所以只能随便写点基础的。 P3197 [HNOI2008]越狱 简单数数。越狱的方案数等于总方案数减没有越狱的方案数。 所以$Ans=mn-m\times (m-1){n-1}$ 。 #include<bits
阅读全文
摘要:来自$\texttt{SharpnessV}$的省选复习计划中的分治算法。 分治,顾名思义,分而治之,一般能将 \(N^2\) 的时间复杂度优化至 \(N \log N\) 或$N\log^2 N$。 P7415 [USACO21FEB] Count the Cows G 观察一个对于边长为$3^n
阅读全文
摘要:才知道有这么个神奇的玩意。 定义,\(n\) 个点,任意两点之间存在且恰好存在一条有向边的图成为 \(n\) 阶竞赛图。 性质 \(1\) :一定存在一条哈密顿路径。 证明:数学归纳法,\(n=1\) 显然成立,当 \(n-1\) 成立时的哈密顿路径,存在相邻两点$v_i,v_{i+1}$,使得 \
阅读全文
摘要:G 想到一个非常神奇的做法。 如果我们令第 \(i\) 个位置放入了 \(b_i\) 个球,那么总代价一定是 \(\prod(a_i + b_i)\)。 总方案数是 \(n^k\),我们只用求所有方案的代价之和。 对于一个代价,我们将它拆开,组合意义等价于选出一些 \(a_i\),剩下的选 \(b_
阅读全文
摘要:给定一个 \(H\times W\) 的数字矩阵,一共走 \(2N\) 步,任选一个起点,奇数步可以移动到同行的一个点,偶数步移动到同列的一个点,将路径上的数记录下来得到一个长度为 \(2N\) 的序列(不包括起点),问有多少种可能的序列。 观察到行数和列数很小,考虑可以状态压缩。 经过思考后我们可
阅读全文
摘要:下午 3 点肝到晚上 7 点,确实毒瘤。 思维难度不是很大? 首先对于 \(0/1\) 边直接特判处理。 观察部分分,如果不存在 \(3\) 边,我们直接用 set 维护每个点只走 \(2\) 能够到达的最右端和最左端即可,非常好写。 如果不存在 \(2\) 边,我们需要维护 \(3\) 边能到达的
阅读全文

浙公网安备 33010602011771号