simple tricks

博客探讨了算法问题,包括序列子段最大值的计算,利用单调栈达到O(n)的时间复杂度;数的异或性质,如区间斜率最大值和异或最小值的特性;数论中的同余关系和欧拉回路的充要条件;以及构造序列最大化积的问题,给出了与模3的关系。还涉及到了染色树剖和最短路算法的应用。
摘要由CSDN通过智能技术生成
  1. 一个区间的斜率最大值一定是相邻两者的斜率最大值。

  2. 询问一个序列所有子段的最大值之和,可转换为一个数是多少子段的最大值,单调栈 O ( n ) \mathcal O(n) O(n) 维护。

  3. 0 ⊕ 1 ⊕ ⋯ ⊕ ( 2 m − 1 ) = 0 0 \oplus 1 \oplus \cdots \oplus (2^m-1)=0 01(2m1)=0

  4. 显然的操作 dp 缺少 observation 时,可尝试寻找操作之间的同余关系。

  5. 若每个点的出入度都是偶数,则每个点的总度数是偶数,是一张图存在欧拉回路的充要条件。

  6. 对于一个环,环外一个点 s s s v ∈ p v\in p vp p p p 为关键点即可)连边跑最短路求 s s s 到非关键点的最大 d i s dis dis。可枚举环上关键点的前一个点(肯定最优),判断即可。

  7. 对于一些点向下递归染色(每次只染一层)的树剖题,可转换为判断每个点是否被染到的模型(使得点到根节点路径上权值的最大前缀和为 − 1 -1 1),通常设点权 − 1 -1 1,判前/后缀是否 ≤ 0 \leq 0 0,消除影响就是设为原点权 − - (最大前缀和 + 1 +1 +1),子树设 − 1 -1 1

  8. 给定正整数 n n n,要你构造出正整数序列 b [ 1 , m ] b[1,m] b[1,m],使得 ∑ i = 1 m b i = n \sum\limits_{i=1}^{m}b_i=n i=1mbi=n ∏ i = 1 m b i \prod\limits_{i=1}^{m}b_i i=1mbi 最大。

    结论:设 f ( n ) f(n) f(n) 表示答案,则有:
    f ( n ) = { 1 n = 1 3 n / 3 n ≡ 0 ( m o d 3 ) 3 ( n − 4 ) / 3 ⋅ 4 n ≡ 1 ( m o d 3 )   and ⁡ n ≥ 4 3 ( n − 2 ) / 3 ⋅ 2 n ≡ 2 ( m o d 3 ) f(n)=\begin{cases}1&n=1\\3^{n/3} & n \equiv 0 \pmod 3\\3^{(n-4)/3}\cdot 4 & n\equiv 1\pmod 3 \ \operatorname{and} n \ge 4 \\3^{(n-2)/3} \cdot 2 &n\equiv 2 \pmod 3\end{cases} f(n)=13n/33(n4)/343(n2)/32n=1n0(mod3)n1(mod3) andn4n2(mod3)

  9. 一个上升区间两数异或最小值一定是相邻两者的异或最小值, ∀ i < j < k \forall i<j<k i<j<k i xor ⁡ k ≥ min ⁡ ( i xor ⁡ j , j xor ⁡ k ) i\operatorname{ xor }k\ge\min(i\operatorname{ xor }j,j\operatorname{ xor }k) ixorkmin(ixorj,jxork)

  10. i xor ⁡ j ≥ ∣ i − j ∣ i\operatorname{ xor }j\ge|i-j| ixorjij

  11. 判断一个数是否为序列中位数,可以将小于该数的数置为 − 1 -1 1,大于等于该数的数置为 1 1 1。求全局和,若 < 0 < 0 <0 ,该数大于等于中位数,否则小于等于中位数,二分。

  12. ( a b )   m o d   2 ≠ 0 \dbinom{a}{b} \bmod 2 \ne 0 (ba)mod2=0,意味着 b b b a a a 的子集,Lucas 定理推到即可,一般套上状压 DP

  13. 一个数能整除起数位上非零的数字,等价于这个数   m o d   2520 \bmod 2520 mod2520 可以整除其非零数字的最小公倍数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值