【发布时间】:2021-01-31 04:46:09
【问题描述】:
给定一个字符串S,由字母A、B、C、D组成,每个在中最多出现10次>S S 有多少个排列不包含 2 个连续字母?
举个例子
A: 3 times, B: 1 time, C: 1, D: 0
ABACA is valid
AABAC is invalid
我尝试了包含排除,但我的模型无法生成一组好的属性来使用该原则。
有公式还是我遗漏了什么?
【问题讨论】:
-
我会说(来自combination)
C(na, nb) * C(na + nb, nc) * C(na + nb + nc, nd)(以及处理na >= 1+nb+nc+nd的额外条件)。
标签: c++ dynamic-programming combinatorics