题解 |python 快速做法 组合恒等式 #小红的子序列权值和#

小红的子序列权值和

https://ac.nowcoder.com/acm/problem/269287

from collections import Counter
n = int(input())
C = Counter(map(int,input().split()))
a,b,c = C[1],C[2],C[3]
mod = 1000000007
r = pow(2,n-2,mod)
print((r*(b+2)*(c+2) - 1) % mod)
数学做法,利用组合恒等式

$ \Sigma_{i=0}^n (i+1)*C_n^i
= \Sigma_{i=0}^n i*C_n^i +  \Sigma_i^n C_n^i
=n*2^{n-1} + 2^n $

\Sigma_{i=0}^n (i+1)*C_n^i<br />= \Sigma_{i=0}^n i*C_n^i +  \Sigma_i^n C_n^i<br />=n*2^{n-1} + 2^n

全部评论
Orz,感谢大佬的宝贵方法。
1 回复 分享
发布于 2024-03-04 22:32 浙江

相关推荐

03-24 21:23
已编辑
郑州大学 Java
点赞 评论 收藏
分享
评论
8
1
分享

创作者周榜

更多
牛客网
牛客企业服务