LOADING

加载过慢请开启缓存 浏览器默认开启

Trick 合集

2025/3/12 OI trick
  1. \(\sum_{i=1}^{n}\sum_{j=i+1}^{n}dep_{LCA_(i,j)}\) 可转化为:依次统计从 根节点 到 \(i\) 的边权和,统计完后将 根节点 到 \(i\) 的所有边的边权的倍数增加 \(1\)
  2. \(f_{m+n}=f_{m-1}\times f_{n}+f_{m}\times f_{n+1}\)\(f_{i}\) 表示 斐波那契数列 的第 \(i\) 项。
  3. 假设当前有 \(n\) 个整数,时刻更改一个数的值,维护乘积,要取模。可以表示为 \(x\times 0^y\),多一个 \(0\) 就将 \(y\) 增加 \(1\),少一个 \(0\) 就减少 \(1\)\(x\) 为其他数的乘积。
  4. \(G\)\(n \geq 3\)\(m\) 条边的简单平面图,则 \(m\leq 3n-6\)
  5. 逆序对可以转化为二维平面上的点对。对于求一个排列的所有子区间的逆序对数量的最大值,可以转化为扫描线在 \(O(n\log n)\) 的时间内求出。具体的,求出前缀最大值和后缀最小值,然后二分查找每个点能产生贡献的范围,转化为若干矩形,区间加,全局 \(\max\) 即可。
  6. \(ab=n^2,bc=m^2,n,m\in \mathbb N\) 根据唯一分解定理有 \(ac=k^2,k\in \mathbb N\)
  7. 阶的求法:先求出 \(\varphi(p)\),然后分解质因数,依次尝试去掉每个质因子,最后剩下的数就是阶。时间复杂度 \(O(log^2p)\)
  8. 现有多条路径,每条路径有一个权值,再给定一条路径,问与给定路径有交的路径的权值和。一条路径上点数减去边数正好是 \(1\)。因此对于一条路径,我们将这条路径上的点权增加 \(v\),将边权减少 \(v\)。对于给定路径求路径上点权和加边权和即是答案。可以使用 DFS 序+BIT 实现,当然也可以树剖。