摘要: 普通平衡树 需要注意的点:1.哨兵节点提前插入 2.父亲节点注意一下 3.细心一点 #include <bits/stdc++.h> #define N 300009 #define lson s[x].ch[0] #define rson s[x].ch[1] #define setIO(s) f 阅读全文
posted @ 2020-07-21 14:48 EM-LGH 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 入门知识点 FFT/NTT 这里令 \(A(x)\) 表示多项式 \(A\) 在 \(x\) 处的取值,\(A[x]\) 表示多项式 \(A\) 的第 \(x\) 项. 卷积形如: 令 \(C[r]=\sum_{p,q}[(p+q)\mod n=r]A[p]\times B[q]\) 设 \(w^{ 阅读全文
posted @ 2019-11-18 20:54 EM-LGH 阅读(837) 评论(0) 推荐(1) 编辑
摘要: 常见公式: 先给出几个重要的公式/结论: 一些常见的二项式反演: $f_n=\sum_{i=0}^{n}( 1)^i\binom{n}{i}g_i\Rightarrow g_n=\sum_{i=0}^{n}( 1)^i\binom{n}{i}f_i$ $f_{n}=\sum_{i=0}^{n}\bi 阅读全文
posted @ 2019-10-25 10:32 EM-LGH 阅读(396) 评论(1) 推荐(1) 编辑
摘要: 求最大的 $2(a_{i}-a_{j}+y)|L$. 其中 $a_{i}-a_{j}$ 只可能有 $x$ 种结果. 这个显然可以用 FFT 来算可行性. 然后调和级数更新就可以了. FFT 中复数的运算什么的要注意一下,不要写错. 单位根是 $(cos(\frac{pi}{l}),i*sin(\fr 阅读全文
posted @ 2020-08-15 12:12 EM-LGH 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 考场的时候智障了,写了 6k+ 的树链剖分. 如果题目带修改的话可以用树链剖分来维护,但由于没有修改用一个前缀和其实就够了. 求 $\sum_{i=l}^{r} f(a,i)$ 可以写成两个前缀相减的形式. 然后我们就要求 $\sum_{i=0}^{r} f(a,i)$. 求这个的话用倍增讨论 $a 阅读全文
posted @ 2020-08-14 09:37 EM-LGH 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 看到这道题时没有什么思路,只会打暴力,而且数据范围比较有迷惑性,那基本就是分块了. 现在有两个暴力: 1.每次 $O(1)$ 更新边权,然后 $O(m)$ 暴力查询一个点的答案.2.每次将所有边排序,然后 $O(1)/O(\log n)$ 查询点权 上述两种做法中查询与更新的时间复杂度很不平衡,所以 阅读全文
posted @ 2020-08-12 20:30 EM-LGH 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 只会 80pts. 最裸的暴力(40pts) 令 $f[i][j]$ 表示当前 DP 到 $i$,划分成了 $j$ 段的最小值. 时间复杂度 $O(n^2)$ 一点优化(60 ~ 80pts) 有几个测点 $a[i]$ 很小,那么可以直接开一个桶 $s[i][j]$ 表示前缀异或和为 $i$,且划分 阅读全文
posted @ 2020-08-12 15:21 EM-LGH 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 首先,如果是一个 DAG 的话入度不为 0 的点肯定可以都选. 然后如果是一般图的话我们缩点,考虑对于一个强连通分量如何处理: 如果该强连通分量入度为 0 ,那么一定有一个点不能选,其他点都能选. 如果该强连通分量入读不为 0,那么肯定所有点都可以选. 由于缩完点后是一个 DAG 的形式,我们一定可 阅读全文
posted @ 2020-08-11 16:47 EM-LGH 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 感觉数学期望这里始终都没太学明白. 期望在任何时候都具有线性性,即 $E(a+b)=E(a)+E(b)$,这个式子任何时候都成立. 先考虑求 $x$,$x^2$. 令 $x1[i]$ 表示 $i$ 为 $1$ 向前的极长 $1$ 的期望长度,$x2[i],x3[i]$ 为 $x^2,x^3$ 的期望 阅读全文
posted @ 2020-08-11 14:09 EM-LGH 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 打表发现一个排列满足要求,当且仅当这个排列以被拆成两个 LIS(其中一个可以为空)考虑状压 DP:$f[S][i][0/1]$ 表示加进去数集 $S$,第二个 LIS 的最大值为 $i$,是否顶上界.我们拆分 $LIS$ 的方式是贪心地将较大的值分给第一个,剩下的分给第二个. 这个时间复杂度大概是 阅读全文
posted @ 2020-08-10 22:08 EM-LGH 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 令 $f[i]$ 表示考虑第 $1$ ~ $i$ 位的最小代价. 由于要求最大化 $k$,所以从高位向低位贪心. 判断的话就判一下当前二进制位选 1 的代价加上 $f[i-1]$ 是否小于等于 m. 如果可以选就贪心选 1. 这道题比较容易爆精度,long long 可能会乘爆,所以判一下两个 lo 阅读全文
posted @ 2020-08-10 15:14 EM-LGH 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 首先,肯定没有不合法情况(每条边的权值都赋值为 $1$ 就一定合法) 然后对于一条边 $(x,y)$ 来说,只可能有 3 种取值. 1. 取 $a[x]$ 2. 取 $a[y]$ 3. 取 $m$ 然后转化成这一步后就可以进行树形 DP 了. 令 $f[x][0],f[x][1]$ 分别表示以 $x 阅读全文
posted @ 2020-08-10 15:03 EM-LGH 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 一个比较暴力的解法. 先对所有串建出广义后缀自动机提取出后缀树然后按照询问的右端点离线. 考虑插入第 $i$ 个串,那么会被 $i$ 及 $i$ 的祖先遍历到的点的表示范围会从 $[l,r] \rightarrow [l,r+1]$. 未被遍历到的点的表示范围出现了一个“断点”,则表示范围就是 $i 阅读全文
posted @ 2020-08-10 08:54 EM-LGH 阅读(181) 评论(0) 推荐(0) 编辑