题解 |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 回复 分享
发布于 03-04 22:32 浙江

相关推荐

10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
评论
8
1
分享
牛客网
牛客企业服务