摘要:
容斥+分治NTT. 令 $dp[i]$ 表示以 $i$ 结尾的方案数. 如果只有小于号的话 $dp[i]$ 是非常好求的:$\frac{n!}{\prod a_{i}}$ 即总阶乘除以每一个小于号连续段. 有大于号的时候考虑容斥: 遇到第一个大于号的时候先不考虑当前位置关系,方案数就是 $dp[j] 阅读全文
摘要:
显然,不合法的情况要存在序列被分成值域为 $[1,i]$ 与 $[i+1,r]$ 两部分. 不妨采用容斥的方法来减去所有不合法的情况. 令 $f[i]$ 表示 $1$ ~ $i$ 构成的合法序列数目. 那么不合法的情况一定可以表示为 $f[j] \times (i-j)!$ 即前 $j$ 个数组成的 阅读全文
摘要:
比较神仙的推导. 求 $\sum_{n=0}^{ \infty }s(n)r^n$,其中 $s(x)$ 是一个 $m$ 次多项式,$0\leqslant r \leqslant 1$ 显然可以 $s(x)$ 每一个系数的贡献,那么就转化为: $\sum_{j=0}^{m} a_{j} \sum_{n 阅读全文
摘要:
普通平衡树 需要注意的点: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 阅读全文
摘要:
令 $f(i,j)$ 表示 $j$ 的 $i$ 阶前缀和. 那么有 $f(i,j)=\sum_{j=1}^{i} f(i-1,j)$,这个可以直接多项式快速幂. 时间复杂度是 $O(n \log^2 n)$ 或 $O(n \log n)$ ,但是常数大而且第二种不好写. 考虑计算每一个位置 $j \ 阅读全文
摘要:
复习一下单位根反演: $[k|n]=\frac{1}{k} \sum_{i=0}^{k-1} w_{k}^{ni}$,即 $[n \% k=0]$ 最前面那个 $\frac{1}{k}$ 不要忘记,也不要写错!!! 当 $n$ 很大,$k$ 不大的时候可以预处理出来 $w_{k}^{i}$ 然后后面 阅读全文
摘要:
考场上忘了第二类斯特林数公式,过于智障,这里再重新推一遍. 首先,$S(i,j)$ 表示的意义是将 $i$ 个不同的球放入 $j$ 个相同的盒子中的方案数,且盒子不能为空. 那么有 $S(i,j)=S(i-1,j-1)+S(i-1,j) \times j$ 分别表示新开一个盒子/放入之前的盒子. 然 阅读全文