#include<cstdio>
const int N=5001,P=1000000007;
int S[N][N];
void inc(int&a,int b){a+=b-P,a+=a>>31&P;}
int mul(int a,int b){return 1ll*a*b%P;}
int pow(int a,int k){int r=1;for(;k;k>>=1,a=mul(a,a))if(k&1)r=mul(a,r);return r;}
int main()
{
int n,k,ans=0;scanf("%d%d",&n,&k),S[0][0]=1;
for(int i=1;i<=k;++i) for(int j=1;j<=i;++j) inc(S[i][j]=S[i-1][j-1],mul(j,S[i-1][j]));
for(int i=1,t=n;i<=k&&i<=n;++i) inc(ans,1ll*S[k][i]*t%P*pow(2,n-i)%P),t=mul(t,n-i);
printf("%d",ans);
}
CF932E Team Work
转载\[\begin{aligned}
ans&=\sum\limits_{i=1}^n{n\choose i}i^k\\
&=\sum\limits_{i=1}^n\frac{n!}{i!(n-i)!}\sum\limits_{j=1}^{\min(i,k)}\left\{k\atop j\right\}i^{\underline j}\\
&=\sum\limits_{i=1}^n\sum\limits_{j=1}^{\min(i,k)}\left\{k\atop j\right\}\frac{n!}{(n-i)!(i-j)!}\\
&=\sum\limits_{i=1}^{\min(n,k)}\left\{k\atop i\right\}\sum\limits_{j=i}^n\frac{n!}{(n-j)!(j-i)!}\\
&=\sum\limits_{i=1}^{\min(n,k)}\left\{k\atop i\right\}\frac{n!}{(n-i)!}\sum\limits_{j=i}^n{n-i\choose n-j}\\
&=\sum\limits_{i=1}^{\min(n,k)}\left\{k\atop i\right\}\frac{n!}{(n-i)!}2^{n-i}
\end{aligned}
\]
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Codeforces 932 E Team Work
Discription You have a team of N people. For a particular task, you can pick any
数论 codeforces 斯特林数 #include i++ -
CF932 E. Team Work 结题报告
斯特林数,啊怎么办字数太少不显示摘要
斯特林数 i++ #define #include 取模 -
【CF932E】Team Work(第二类斯特林数简单题)
求$\sum_{i=1}^nC_n^i\times i^k$。
下降幂 斯特林数 #define 预处理 组合数