Loading

杂项 tricks

本文主要记录一些无法归类,或者可以归到很多类的奇妙 tricks

判断因数

  • \(a\)\(b\) 的因数等价于 \(a\) 的每个质因子次数都 \(\leq b\)
    这里可以使用高维前缀和统计。
  • \(a\)\(b\) 的因数等价于 \(\gcd(a,b)=a\)
    可以搭配数据结构。

高维前缀和

求法:

OI wiki

记数组总元素个数为 \(n\),维度为 \(k\)

可以枚举维度 \(j\),每一次枚举整个数组,将 \(pre_{i_1,i_2,...,i_j,...,i_k}\)\(pre_{i_1,i_2,...,i_j - 1,...,i_k}\) 转移。

用途

例题


一些思维题的思考方向

  1. 分界线,或者分类思想(如操作 / 不操作),可以看分布规律

  2. 打表,打出 dp 的表,以此尝试推出转移式,详见 ZR 25 summer D5T1。

  3. 正难则反,可以考虑操作的逆。

  4. 是不是有假的数据范围?有些数字范围是无意义,即答案确定或者平凡求解。

题面:

一个长为 \(n=2 ^ k\) 的数组 \(a\),数组 \(b\) 满足 \(b_{i | j} += a_i \times a_j\)

解法:

按位或就是每一位取 max。

如果不考虑位,直接把 \(i|j\) 改成 \(\max(i,j)\),可以前缀和 \(Sb_i = Sa_i ^ 2\)

考虑位:\(Ha\)\(a\) 的高维前缀和。还有 \(Hb_i=Ha_i^2\)

绝对值的处理

  • \(|a-b|=\max(a-b,b-a)\)
    配合最短路 / 最大流 / 线段树。

同余

看到同余,尤其是区间同余问题。大多数情况下都是做差分数组。

LCA250726模拟赛T2

这道题就是求最长的区间满足区间对于一个 \(x \ge 2\) 同余。

简单差分后线段树维护(明明可以 st 表,只能说糖丸了)区间 \(\gcd\)

发现一个满足题意的区间必定是 \(\gcd \not = 1\) 的。

而且一个已经 \(\gcd = 1\) 的区间再拓展一定还是 \(\gcd = 1\)

于是双指针维护,对于每个 \(r\) 找到最小的 \(l\) 满足 \(\gcd_{i=l}^r a_i \not = 1\),然后更新答案。

一些序列的图形化,几何直观

  • 01序列:折线,0 代表向右,1 代表向上

  • 括号序列:折线和树

  • 排列,\((i,a_i)\),排序时就是排到对角线。

posted @ 2025-07-23 10:46  lajishift  阅读(6)  评论(0)    收藏  举报