Skip to content

SP 10676题解

Published: at 04:06

题意

求长度为 nn 的 01 串有多少种组合方法。

思路

对于组合运算,我们可以理解为无顺序地,从 mm 个物体中中选出 nn 个物体进行排序,在数学中记作 CmnC_m^n

在这道题中,我们假定选择了 kk11,则剩下的 nkn-k 个字符都是 00,即 在 k+1k+11111 的间隔中插空 00,所以它的组合数量表达式为 Ck+1nkC_{k+1}^{n-k}

对于 Python 语言,在 math 库中有一个函数叫 math.comb(),它可以计算组合数,所以我们就不用手打组合了。

代码

import math
n=int(input())
ans=0
for k in range(0,n+1,1):
    ans+=math.comb(k+1,n-k)
print(ans)