[SCOI2010]生成字符串
首先,在忽略在任意的前k个字符中,1的个数不能少于0的个数时,总方案数是$$C(n + m, m)$$
但考虑题目要求,可以对此做一个转化:若将加入\(1\)看作加入向量\((1, 1)\), 加入\(0\)看作加入向量\((1, -1)\),能够得到以下图形。

至此,问题转化为从\((0, 0)\)出发,不经过\(y = -1\)且最后到达\((n + m, n - m)\)的方案数。
若将\(y = -1\)当成对称轴,将非法情况翻转,可以发现其起点皆为\((0, -2)\),即非法方案数为:从\((0, -2)\)出发,最后到达\((n + m, n - m)\)的方案数。
由于翻转段的\(m = n + 1\),所以翻转后\(m - 1\)。
所以非法方案数为:$$C(n + m, m - 1)$$
答案为:$$C(n + m, m) - C(n + m, m - 1)$$

浙公网安备 33010602011771号