组合计数.
- 求本质不同的序列数目,考虑以最小字典序表示序列,进行计数.
- 设序列中出现的最大值为 $m$ ,那么序列用最小字典序表示后只有下面两种情况:
- $1,(2,1,2,1\dots),2,(3,2,3,2\dots),3,\dots m$ .
- 或者 $1,(2,1,2,1\dots),2,(3,2,3,2\dots),3,\dots m,m-1$ .
- 若序列长度为 $n$ ,第一种情况可以看做 $\lfloor \frac {n-m} 2 \rfloor$ 个相同的球放入 $m-1$ 个盒子的方案数.盒子可以为空.
- 第二种情况可以看做$\lfloor \frac {n-m-1} 2 \rfloor$ 个相同的球放入 $m-1$ 个盒子的方案数.盒子可以为空.
- 枚举 $m$ ,由于长度是 $\le N$ 的,所以相当于那些球也可以不放.预处理阶乘及其逆元后 $O(M)$ 计算即可.
1 |
|