一道有趣的题

题目如下:

红黄蓝三种颜色的糖各n块,排成一行,要求相邻两块糖颜色不同,求方案数。
—— From zhengrui

  • 1<=n <= 1e6
  • 一眼就是组合数题
  • 考虑红球被分成k段,那么需要用黄球插入k - 1个隔板,那么方案数为 C k − 1 n − 1 C_{k -1}^{n - 1} Ck1n1,那么同理 : 黄球被分成t段的方案数为 C t − 1 n − 1 C_{t - 1}^{n - 1} Ct1n1,然后考虑几种情况:
  1. k段两端均为黄球

  2. 一端为黄球,一段为红球,注意 : 这会有两种情况

  3. 两段均为红球

  • 最终式子为 C k − 1 n − 1 ∗ C t − 1 n − 1 ∗ ( 1 + ( t = = k ) ) C_{k -1}^{n - 1} * C_{t- 1}^{n - 1} *(1 + (t == k)) Ck1n1Ct1n1(1+(t==k))

  • 考虑蓝球的情况 :总共有 2 n − 1 2n - 1 2n1块隔板,其中两侧不同的隔板有 k + t + 1 k + t + 1 k+t+1个(开头结尾也要算),那么相同的情况为 2 n − 1 − ( k + t − 1 ) 2n - 1 - (k + t - 1) 2n1(k+t1) 2 n − k − t 2n - k - t 2nkt种,相同肯定要放没有选择,能用的球仅剩 n − ( 2 n − k − t ) n - (2n - k - t) n(2nkt)个,即 k + t − n k +t - n k+tn个,方案为 C k + t − n k + t + 1 C_{k + t - n}^{k + t + 1} Ck+tnk+t+1,简化一下 C k + t + 1 n + 1 C_{k + t + 1}^{n + 1} Ck+t+1n+1;

  • 总的式子为 C n − 1 k − 1 ∗ C n − 1 t − 1 ∗ ( 1 + ( t = = k ) ) ∗ C k + t + 1 n + 1 C_{n - 1}^{k - 1} * C_{n - 1}^{t - 1}*(1 +(t == k))*C_{k + t + 1}^{n + 1} Cn1k1Cn1t1(1+(t==k))Ck+t+1n+1,值得注意的是 C n m C_{n}^{m} Cnm n < m , m < 0 n < m,m < 0 n<m,m<0时为0。

思路懂了,代码应该有手就行吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值