计数菌

这里会整理一些计数题。

agc001e

转化。

考虑转成组合意义,相当于在网格上走。然后平移网格,变成一个类似多源 bfs 路径计数的东西。

agc002f

转化。

最后相当于 \(n\) 个白球,然后其他每种球各 \(k-1\) 个,同时每个前缀的白球数量 \(\ge\) 当前颜色数量。

然后有一个 dp,\(f_{i,j}\) 表示已经放了 \(i\) 个白球和 \(j\) 个颜色的方案数。

放白球的话直接扔到当前第一个空。否则要放一种新颜色,方案数就是先选一个颜色,然后为了避免算重,需要钦定一个该颜色的球扔到了第一个空(不难发现一定合法),然后在剩下 \(n\times k-(j-1)\times (k-1)-1\) 个空位里选 \(k-2\) 个即可。

agc005d

建图。

\(f_i\) 表示排列中至少\(i\) 处不合法的方案数,答案就是 \(\sum_{i=0}^{n}(-1)^i f_i\)

然后把位置和值建出来一个二分图,对不合法的匹配连上边,那么现在形成了一堆不交的链,可以把这些链串起来。

于是设 \(f_{i,j,0/1}\) 表示前 \(i\) 个点,选了 \(j\) 条边,上一条边选没选的方案数。注意有一些边不可能被选,需要特判。

不难发现上面的 \(f_i=(n-i)!\times f_{2n,i}\)\(0/1\) 都要算上。

arc160d

加限制。

发现一个区间加 \(k\) 次和每个点加 \(1\) 次没区别,所以我们加一个限制,每个区间加的次数小于 \(k\)

然后设 \(b_i\)\(i\) 开头的区间加了几次,限制显然。

然后考虑钦定 \(i\)\(b\) 不合法,进行容斥以及插板,那么答案就是 \(\sum_{i=0}^{n-k+1}(-1)^i\binom{n-k+1}{i}\binom{\frac{m}{k}-ik+2n-k}{2n-k}\)

posted @ 2025-11-28 17:23  zxh923  阅读(0)  评论(0)    收藏  举报