题意
给定一个长度为 \(n\) 的序列。
每个数字的范围为 \([1, m]\)。
求一共 \(m ^ n\) 种数列,每个数列种本质不同的子序列个数之和。
Sol
考虑用一种比较好的方式表示答案。
枚举本质不同的子序列长度,枚举中间跳过的数的个数。
\[m ^ n + \sum_{i = 1} ^ n \sum_{j = 0} ^ {n - i} (m - 1) ^ j m ^ {n - j} \times C_{i + j - 1} ^ {i - 1} \]注意到 \((m - 1) ^ j m ^ {n - j}\) 与 \(i\) 无关,提出来。
\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \sum_{i = 1} ^ {n - j} C_{i + j - 1} ^ {i - 1} \]\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \sum_{i = 1} ^ {n - j} C_{i + j - 1} ^ j \]欸后面这个东西怎么列都相同啊。
求杨辉三角某一列的值,等于该列右下角的数。
\[m ^ n + \sum_{j = 0} ^ n (m - 1) ^ j m ^ {n - j} \times C_{n} ^ {j + 1} \]把 \(j\) 都变成 \(j + 1\)。
\[m ^ n + \frac{m - 1}{m} \sum_{j + 1 = 1} ^ n C_{n} ^ {j + 1} \times (m - 1) ^ {j + 1} m ^ {n - (j + 1)} \]\[m ^ n + \frac{m - 1}{m} \sum_{i = 1} ^ n C_{n} ^ i \times (m - 1) ^ i m ^ {n - i} \]后面这一坨不就是二项式定理吗,单独把 \(i = 0\) 拎出来。
\[m ^ n + \frac{m - 1}{m}((\sum_{i = 0} ^ n C_{n} ^ i \times(m - 1) ^ i m ^ {n - i}) - m ^ n) \]\[m ^ n + \frac{m - 1}{m}((2m - 1) ^ n - m ^ n) \]时间复杂度:\(O(log_n)\)。
标签:Different,frac,sum,CF660E,times,Tuples,序列 From: https://www.cnblogs.com/cxqghzj/p/17925796.html