CF932 E. Team Work

题意

求

\[\sum_{i=0}^n\binom{n}{i}i^k
\]

其中\(n\le 10^9,k\le 5000\),对\(mod=998244353\)取模


事实证明我斯特林数学到狗身上去了...

关于斯特林数的一个常用公式是

\[x^n=\sum_{i=1}^x\binom{x}{i}{n \brace i}i!
\]

然后带进去推一波式子就完事了

\[\begin{aligned}
\sum_{i=0}^n\binom{n}{i}i&=\sum_{i=0}^n\binom{n}{i}\sum_{j=1}^k\binom{i}{j}{k\brace j}j!\\
&=\sum_{j=1}^k{k \brace j}\sum_{i=0}^n\binom{n}{i}\binom{i}{j}j!\\
&=\sum_{j=1}^k{k \brace j}\sum_{i=0}^n\frac{n!}{(n-i)!(i-j)!}\\
&=\sum_{j=1}^k{k \brace j}\sum_{i=0}^n\frac{n!(n-j)!}{(n-i)!(i-j)!(n-j)!}\\
&=\sum_{j=1}^k{k \brace j}n^{\underline j}\sum_{i=0}^n\binom{n-j}{n-i}\\
&=\sum_{j=1}^k{k \brace j}n^{\underline j}2^{n-j}
\end{aligned}
\]


Code:

#include <cstdio>
const int mod=1e9+7;
inline int add(int x,int y){return x+y>=mod?x+y-mod:x+y;}
#define mul(x,y) (1ll*(x)*(y)%mod)
inline int qp(int d,int k){int f=1;while(k){if(k&1)f=mul(f,d);d=mul(d,d),k>>=1;}return f;}
int str[5010][5010],n,k,ans;
int main()
{
scanf("%d%d",&n,&k);
str[0][0]=1;
for(int i=1;i<=k;i++)
for(int j=1;j<=i;j++)
str[i][j]=add(str[i-1][j-1],mul(str[i-1][j],j));
for(int i=1,f=1;i<=n&&i<=k;i++)
{
f=mul(f,n-i+1);
ans=add(ans,mul(f,mul(str[k][i],qp(2,n-i))));
}
printf("%d\n",ans);
return 0;
}

2019.3.27


CF932 E. Team Work 结题报告的更多相关文章

  1. 《基于Arm实验箱的国密算法应用》课程设计 结题报告

    <基于Arm实验箱的国密算法应用>课程设计 结题报告 小组成员姓名:20155206赵飞 20155220吴思其 20155234昝昕明 指导教师:娄嘉鹏 设计方案 题目要求:基于Arm实 ...

  2. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  3. 2013山东省ICPC结题报告

    A.Rescue The Princess 已知一个等边三角形的两个顶点A.B,求第三个顶点C,A.B.C成逆时针方向. 常规的解题思路就是用已知的两个点列出x,y方程,但这样求出方程的解的表达式比较 ...

  4. uva401 - Palindromes结题报告

    题目地址 :  http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  5. [置顶] 白话最小边覆盖总结--附加 hdu1151结题报告

    刚开始看到这个题目的时候就觉得想法很明了,就是不知道如何去匹配... 去网上看了不少人的解题报告,但是对于刚接触“最小边覆盖”的我来说....还是很困难滴....于是自己又开始一如以往学习“最大独立集 ...

  6. hdu1281结题报告

    哎哎...自己刚刚一看到这个题目居然.....什么都想不到...看了一下别人的解题报告说最大匹配...于是就自己开始构思啦... 对于这个棋盘,有K个可以放棋子的位置....那么 首先我们开始可以求出 ...

  7. 有向图强连通分支的Tarjan算法讲解 + HDU 1269 连通图 Tarjan 结题报告

    题目很简单就拿着这道题简单说说 有向图强连通分支的Tarjan算法 有向图强连通分支的Tarjan算法伪代码如下:void Tarjan(u) {dfn[u]=low[u]=++index//进行DF ...

  8. 2016noipday1t1玩具迷题结题报告

    经常读这个代码有益于比赛时想起一些思路.... day1t1,洛谷dalao称之为水题...??然后我去年还是没拿到分,就这个,我还就写了40%的数据,AC到40,然而这不是关键,注释了freopen ...

  9. 2017 五一 清北学堂 Day1模拟考试结题报告

    预计分数:100+50+50 实际分数:5+50+100 =.= 多重背包 (backpack.cpp/c/pas) (1s/256M) 题目描述 提供一个背包,它最多能负载重量为W的物品. 现在给出 ...

随机推荐

  1. Android PAI (PlayAutoInstall)预装APK 功能

    最近刚找到工作,是手机方案公司,刚接触手机系统预装的APP,以及解决方案MTK平台下预装APP的bug,也接触到了Launcher的东西. 然后接触到了第一个需求 PAI预装APK功能 下面是我用到的 ...

  2. SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果

      一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - ...

  3. mssql sqlserver 快速表备份和表还原的方法

    摘要: 在sqlserver维护中,我们偶尔需要运行一些sql脚本对数据进行相关修改操作,在数据修改前我们必须对表数据进行备份来避免出现异常时,可以快速修复数据, 下文讲述sqlserver维护中,快 ...

  4. c#核心基础-委托

    委托是一个类型.C#中的委托是面向对象的,并且它是类型安全的 当创建委托实例的时候,创建的实例会包含一个调用列表,在调用列表中可以包含多个方法.每个方法称作一个调用实体.调用实体可以是静态方法,也可以 ...

  5. 通过apt-get安装JDK8

    安装python-software-properties $sudo apt-get install python-software-properties $sudo apt-get install ...

  6. Cherrypy文件上传非ASCII文件名乱码问题解决

    Cherrypy 版本: 18.0.1 由于某些特殊原因(可能是与标准兼容的问题),Cherrypy对上传文件的原文件名使用 ISO-8859-1 编码方式解码,导致非 ASCII 的文件名显示为乱码 ...

  7. luajit官方性能优化指南和注解

    luajit是目前最快的脚本语言之一,不过深入使用就很快会发现,要把这个语言用到像宣称那样高性能,并不是那么容易.实际使用的时候往往会发现,刚开始写的一些小test case性能非常好,经常毫秒级就算 ...

  8. c/c++浮点数在内存中存储方式

    转自:https://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html 任何数据在内存中都是以二进制的形式存储的,例如一个shor ...

  9. python中创建虚拟环境

    # virtualenv 虚拟环境安装 pip install virtualenv # 创建虚拟环境        virtualenv [虚拟环境名称] # 进入虚拟环境 windows : 进入 ...

  10. idea spring boot

    1 如何使用IntelliJ IDEA 配置Maven https://blog.csdn.net/westos_linux/article/details/78968012 2.Maven将中央仓库 ...