题目链接:CF932E

由第二类斯特林数知

\[n^m=\sum_{i=0}^nS(m,i)*i!*\dbinom{n}{i}
\]

\[\begin{aligned}
\sum_{i=1}^n \dbinom{n}{i}i^k&=\sum_{i=1}^n\dbinom{n}{i}\sum_{j=0}^iS(k,j)*j!*\dbinom{i}{j}\\
&=\sum_{i=1}^n\frac{n!}{i!(n-i)!}\sum_{j=0}^iS(k,j)*j!*\frac{i!}{(i-j)!j!}\\
&=\sum_{i=1}^n\frac{n!}{(n-i)!}\sum_{j=0}^iS(k,j)*\frac{1}{(i-j)!}\\
&=\sum_{j=0}^nS(k,j)\sum_{i=j}^n\frac{n!}{(n-i)!(i-j)!}\\
&=\sum_{j=0}^nS(k,j)\sum_{i=j}^nn^{\underline{j}}\dbinom{n-j}{n-i}\\
&=\sum_{j=0}^kS(k,j)n^{\underline{j}}\sum_{i=j}^n\dbinom{n-j}{n-i}\\
&=\sum_{j=0}^kS(k,j)n^{\underline{j}}2^{n-j}
\end{aligned}
\]

\(O(k^2)\)预处理第二类斯特林数,\(O(k)\)计算答案,沿途维护\(n^\underline{j}\)和\(2^{n-j}\)即可

#include<iostream>
#include<string.h>
#include<string>
#include<stdio.h>
#include<algorithm>
#include<math.h>
#include<vector>
#include<queue>
#include<map>
#include<set>
using namespace std;
#define lowbit(x) (x)&(-x)
#define rep(i,a,b) for (int i=a;i<=b;i++)
#define per(i,a,b) for (int i=a;i>=b;i--)
#define maxd 1000000007
#define inv2 500000004
typedef long long ll;
const double pi=acos(-1.0);
int n,k,N;
ll s[5050][5050]; int read()
{
int x=0,f=1;char ch=getchar();
while ((ch<'0') || (ch>'9')) {if (ch=='-') f=-1;ch=getchar();}
while ((ch>='0') && (ch<='9')) {x=x*10+(ch-'0');ch=getchar();}
return x*f;
} ll qpow(ll x,int y)
{
ll ans=1;
while (y)
{
if (y&1) ans=(ans*x)%maxd;
x=(x*x)%maxd;
y>>=1;
}
return ans;
} int main()
{
n=read();k=read();
N=min(n,k);s[0][0]=1;
rep(i,1,k)
{
rep(j,1,k) s[i][j]=(s[i-1][j-1]+s[i-1][j]*j)%maxd;
}
ll bin=qpow(2,n);
ll ans=0,now=1;
rep(i,0,N)
{
ans=(ans+s[k][i]*now%maxd*bin%maxd)%maxd;
now=(now*(n-i))%maxd;bin=(bin*inv2)%maxd;
}
printf("%lld",ans);
return 0;
}

codeforces932E Team Work的更多相关文章

  1. Configure a VLAN on top of a team with NetworkManager (nmcli) in RHEL7

    SOLUTION VERIFIED September 13 2016 KB1248793 Environment Red Hat Enterprise Linux 7 NetworkManager ...

  2. Create a Team in RHEL7

    SOLUTION VERIFIED September 13 2016 KB2620131 Environment Red Hat Enterprise Linux 7 NetworkManager ...

  3. Team Leader 你不再只是编码, 来炖一锅石头汤吧

    h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...

  4. Configure bridge on a team interface using NetworkManager in RHEL 7

    SOLUTION IN PROGRESS February 29 2016 KB2181361 environment Red Hat Enterprise Linux 7 Teaming,Bridg ...

  5. BZOJ 4742: [Usaco2016 Dec]Team Building

    4742: [Usaco2016 Dec]Team Building Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 21  Solved: 16[Su ...

  6. 关于 feature team 的一些内容

    矩阵式管理,是常见的经典管理架构.其最早起源于美国的航空航天部门,然后被美国人带到了日本,然后被日本人带到了台湾,然后台湾人带到大陆...矩阵管理最典型的特征是,组织架构按职能与专业划分,项目由跨越部 ...

  7. 病毒四度升级:安天AVL Team揭露一例跨期两年的电信诈骗进化史

    自2014年9月起,安天AVL移动安全团队持续检测到一类基于Android移动平台的间谍类病毒,病毒样本大多伪装成名为"最高人民检察院"的应用.经过反编译逆向分析以及长期的跟踪调查 ...

  8. iOS 真机测试时报错:Provisioning profile "iOS Team Provisioning Profile: XXX” doesn't include the currently selected device “XXX”.

    这几天因工作需要,去给客户演示iOS项目打包的过程.之前演示都是顺利的,但后来客户自己操作时打电话说遇到了问题,出现报错. 就过去看了一下,发现一个很陌生的错误提示: The operation co ...

  9. diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs

    One of the extensibility points we have in Team Foundation V1 is that you can configure any other di ...

随机推荐

  1. Git开发分支使用与管理规范

    最稳定的代码放在 master 分支上(相当于 SVN 的 trunk 分支),我们不要直接在 master 分支上提交代码,只能在该分支上进行代码合并操作,例如将其它分支的代码合并到 master ...

  2. 编程心法 之 Scrum - Agile 敏捷开发

    Scrum是一种敏捷开发的方法 先定一个能达到的小目标 Scrum 团队 包括产品负责人.开发团队和Scrum Master Product Owner 产品负责人:管理代办事项和优先级的唯一负责人. ...

  3. 程序员50题(JS版本)(八)

    程序36:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人推出圈子,问最后留下的是原来第几号的那位 var n=20; var arr=[]; for(var i=0;i& ...

  4. jQuery从小白开始---初始jQuery

    jQuery是什么? jQuery是一款优秀的JavaScript库,从命名可以看出jQuery最主要的用途就是用来做查询(jQuery=js+Query),正如jQuery官方Logo副标题所说(w ...

  5. AIDL使用以及原理分析

    AIDL使用以及IPC原理分析(进程间通信) 概要 为了大家能够更好的理解android的进程间通信原理,以下将会从以下几个方面讲解跨进程通讯信: 1. 必要了解的概念 2. 为什么要使用aidl进程 ...

  6. [20190416]process allocation latch.txt

    [20190416]process allocation latch.txt --//看链接:http://andreynikolaev.wordpress.com/2010/12/16/hidden ...

  7. 下载合适的tomcat版本

    Tomcat因技术先进.性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器.对于新手来讲,如何下载合适的tomcat版本呢?今天我们以下 ...

  8. LinkedList与Queue

    https://blog.csdn.net/u013087513/article/details/52218725

  9. 【转】不需要 Root,也能用上强大的 Xposed 框架:VirtualXposed

    如果你喜欢折腾 Android 设备,那么你应该对 Xposed 的大名有所耳闻. 这个第三方框架,让许多 Android 玩家都爱不释手.通过对系统框架的「偷天换日」,它可以修改系统与应用的各种数据 ...

  10. node编写定时任务,for循环只执行一遍的解决办法

    在用node编写定时任务时候,发现for循环只执行i=0这一次,就不接着循环执行了,下面贴上代码: exports.task = async function(ctx){ let { app } = ...