一些 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\)

科技

posted @ 2025-04-16 15:46  coding_goat_qwq  阅读(26)  评论(2)    收藏  举报