随笔分类 - 组合数学
摘要:首先我们让恰有 $k$ 位同学被碾压是比较困难的,我们套路地把它转换成钦定某 $k$ 位同学被碾压。 考虑到分数的分配方案数只与多少个人比 B 大/多少个人小于等于 B 相关,而这部分是个定值,所以我们接下来只需要对每门课把所有人分成两个集合就可以了。 我们记钦定某 $k$ 位同学被碾压的方案为 $
阅读全文
摘要:不妨把 $B$ 也由大到小排序。 先考虑怎么推一推式子。我们要求的是 $$ \sum_{\pi}\prod_{i=1}^n \min(A_i,B_{\pi_i})=\sum_{\pi}\prod_{i=1}^n \min(A_{r_i},B_i) $$ 然后我们可以把 $B_n$ 提出来,考虑能否进
阅读全文
摘要:关于 Lucas 定理 起初,有一个 $\binom{n}{m}$,我们想要计算它,但它可能太大了,我们只想要计算它取模质数 $p$ 的结果。但当 $n,m$ 真的很大的时候,我们还是没有办法计算它。这可真是太不好了。 考虑怎么计算 $\binom{n}{m} %\ p$ 的结果,容易想到: $$
阅读全文
摘要:考虑什么时候 $\binom{n}{m}\equiv 1(\bmod 2)$,由 Lucas 定理,我们知道 $$ \binom{n}{m}\equiv \binom{\lfloor\frac{n}{2}\rfloor}{\lfloor\frac{m}{2}\rfloor}\binom{n % 2}
阅读全文
摘要:我们考虑到,行与行之间的交互只可能通过一个 $1\times2$ 的竖着的小长方形来实现,可以把这一部分先丢出去不考虑,先考虑如下子问题:$i$ 列用 $k$个,只能横着放,有多少种方案。 显然我们可以枚举第一行用了几个,有 $$ g_{i,k}=\sum_{j=1}^{k-1}\binom{i-1
阅读全文
摘要:显然整除关系构成一张 DAG,我们每次选择一个点之后可以覆盖所有它能到达的点,在这个情况下再询问这个题的问题。 显然所有点都被覆盖等价于所有入度为 $0$ 的点被选择,我们可以简单求出入度为 $0$ 的有几个,这个可以 $O(n \log\log n)$ 或者线性处理最小不妨设为 $p$,接下来就是
阅读全文
摘要:记 $a_i$ 前缀和为 $t_i$,$t_n=S$,$b_i$ 前缀和为 $s_i$。 $$ ans=\sum_{\sum b_i=S}\sum_{i=1}^nw_i|s_i-t_i| $$ 套路地拆贡献,我们有[^1] $$ \begin{aligned}ans&=\sum_{i=1}^nw_i
阅读全文
摘要:显然我们可以解出 $a_i>b_i,a_i<b_i$ 的分别有 $x,y$ 组。 首先,我们把这个东西当成一个配对,可以考虑一下把所有的数合并到一起排序。 然后显然可以有一个 dp,记 $dp_{i,cnt,p_1,p_2}$ 表示我们目前考虑到了第 $i$ 个数,当前满足 $a_i>b_i$ 的数
阅读全文