摘要:
一、前言 神仙题目 二、题解 30 p t s 30pts 30pts: 考虑枚举右端点 r r r。 建立一颗答案线段树 A T r e e ATree ATree,线段树的 i i i 号节点表示 min ( a [ j ] − a [ i ] ) ( i ≤ j ≤ r , a [ j ] 阅读全文
摘要:
const int MaxLct = 2 * 1e5; #define ls(p) (Tr[p].ch[0]) #define rs(p) (Tr[p].ch[1]) #define fa(p) (Tr[p].fa) #define rev(p) (Tr[p].rev) struct Node { 阅读全文
摘要:
∑ i = 1 2 n − 1 ( n f i ) = ∑ i = 1 n ( n i ) 2 n − i = ∑ i = 1 n ( n i ) 2 n − i 组 合 意 义 , 3 种 颜 色 染 色 。 = 3 n − 2 n \begin{aligned} \sum_{i = 1}^{2^ 阅读全文
摘要:
1.算法 用主席树维护 f a fa fa 和 d e p t h depth depth 数组,其他的和并查集只用按秩合并一模一样。 2.模板 #define ls (Tr[p].ch[0]) #define rs (Tr[p].ch[1]) #define fap (Tr[p].fa) #def 阅读全文
摘要:
1.莫比乌斯求和 ϵ ( n ) = { 1 , n = 1 0 , n ≠ 1 I ( n ) = 1 ϵ ( n ) = ∑ i ∣ n μ ( i ) × I ( n i ) ∑ i = 1 n ϵ ( i ) = ∑ i = 1 n ∑ d ∣ i μ ( d ) × I ( i d ) = 阅读全文
摘要:
一、算法介绍 C D Q CDQ CDQ 分治,类似于归并排序,大体思路为:将需要求解的询问区间 [ l , r ] [l, r] [l,r] 分为 [ l , m i d ] , [ m i d + 1 , r ] [l, mid], [mid + 1, r] [l,mid],[mid+1,r] 阅读全文
摘要:
基本形式 f , g f,g f,g 函数卷起来写作 f ∗ g ( n ) f * g (n) f∗g(n),等于 ∑ d ∣ n f ( d ) g ( n d ) \sum_{d \mid n} f (d) g (\frac{n}{d}) ∑d∣nf(d)g(dn) 性质: 若 f , g 阅读全文
摘要:
其实引理用得更多,人麻了 引理: f ( n ) = ∑ d ∣ n μ ( d ) ⇒ f ( n ) = { 1 , n = 1 0 , e l s e \begin{aligned} f (n) &= \sum_{d \mid n} \mu (d) \\ \Rightarrow f (n) & 阅读全文
摘要:
该死,怎么这么强。 p r e [ i ] pre[i] pre[i] 表示 i i i 号点到根节点的距离,用的是手写栈。 d p [ i ] = d p [ j ] + s [ i ] + ( p r e [ i ] − p r e [ j ] ) ∗ v [ i ] d p [ i ] = d 阅读全文
摘要:
const int Maxn = 2 * 1e5; const int Inf = 0x3f3f3f3f; int sa[Maxn + 5], id_bak[Maxn + 5]; //sa[i] len + 1 ~ 2 * len 排名为 i 的串的编号 //id_bak[i] 编号为 i 的串该被 阅读全文