一些 Trick/结论/科技 记录
Trick
- 查询一个区间 \([l,r]\) 中 \(x\) 是否为众数(出现次数大于 \(\lceil \frac{r-l+1}2\rceil\)),可以弄个数组 \(b\),使得 \(b_i=\begin{cases} 1(a_i=x)\\-1(a_i\ne x)\end{cases}\),就变成了查询 \(b_r>b_{l-1}\)。
- 枚举子集的子集时间复杂度可以达到 \(O(3^n)\),其中 \(n\) 为集合大小,具体实现方式如下:
For(S,0,(1<<n)-1)
for(int S1=S0,S1;S1=(S1-1)&S0)
{
//...
}
-
在树上求一个点 \(x\) 与其它所有点 \(d_i\) 的 \(\sum_{i=1}^{n} dep_{\operatorname{LCA}(d_i,x)}\),其中 \(dep_i\) 表示从根到 \(i\) 的距离,相当于是求 \(x\) 到 \(1\) 的路径与 \(d_i\) 到 \(1\) 的路径交。于是我们添加点的时候给路径上每一条边都加上一个倍率 \(1\),最后相当于求 \(1\) 到 \(x\) 的边和倍率乘积的和。P9808 [POI 2022 ~2023R1] zbo。
-
将一个单调上升序列 \(a\) 转换为单调不下降队列可以看成 \(a_i'=a_i-i\)。
结论
- 对于一张无向图 \(G=(V,E)\),如果能使其画在平面上使得任意两条无重合顶点的边不相交,则称 \(G\) 是平面图。那么我们有结论:一张平面图如果点数大于 \(3\),那么它的边数不会超过 \(3n-6\)。
科技
本文来自博客园,作者:coding_goat_qwq,转载请注明原文链接:https://www.cnblogs.com/CodingGoat/p/18828834

浙公网安备 33010602011771号