其他分享
首页 > 其他分享> > 0/1序列排列

0/1序列排列

作者:互联网

题目描述
构建一个由0/1的组成的n个数序列,保证没有两个1相邻,问有多少这样的序列。
思路

  1. 这道题可以用组合的方式来做,首先枚举序列中1的个数(0~$ \left \lceil n/2 \right \rceil $ ),那么序列中0的个数就是n~ \(\left \lfloor n/2 \right \rfloor\) ,假设有i个1,就有n-i个0,将这些0排成一列,会得到n-i+1个空,要放入i个1,组合数\(C_{n-i+1}^{i}\),所有的就是\(\sum_{i=0}^{\left \lceil n/2 \right \rceil} C_{n-i+1}^{i}\)。
  2. 这道题用组合的方法可能很难想,但是还有DP做法,\(f[i][j]\)表示i位序列最后一位是j时的这样的序列总数。转移方程为\(f[i][1]=f[i-1][0]\),\(f[i][0]=f[i-1][1]+f[i-1][0]\)。

标签:lceil,排列,个数,right,序列,这道题,left
来源: https://www.cnblogs.com/z-2-we/p/16312958.html