Description

Solution

核心思想是把组合数当成一个奇怪的多项式,然后拉格朗日插值。。;哦对了,还要用到第二类斯特林数(就是把若干个球放到若干个盒子)的一个公式:

$x^{n}=\sum _{i=0}^{n}C(n,i)*i!*S(i,x)$

围观大佬博客(qaq公式太难打了)

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int mod=1e9+;
const int N=;
ll fac[N],finv[N],inv[N],S[N][N],inv2;
int n,m,k;
ll C(int x,int y){return x<||y<||x-y<?:fac[x]*finv[y]%mod*finv[x-y]%mod;}
ll ksm(ll x,int k){ll re=;while (k){if (k&) re=re*x%mod;k>>=;x=x*x%mod;}return re;} ll a[N];
void geta(int k)
{
memset(a,,sizeof(a));
a[]=;
for (int i=;i<k;a[]=,i++)
for (int j=i+;j;j--)
a[j]=(a[j-]-i*a[j]%mod+mod)%mod;
for (int i=;i<=k;i++) a[i]=a[i]*finv[k]%mod;
} ll bin[N],pnm[N];
void pre(int k)
{
pnm[]=;for (int i=;i<=k;i++) pnm[i]=pnm[i-]*(n+m)%mod;
bin[]=;for (int i=;i<=k;i++) bin[i]=bin[i-]*(mod-)%mod;
}
ll f[N];
ll ans;
int main()
{
inv2=ksm(,mod-);
inv[]=inv[]=fac[]=fac[]=finv[]=finv[]=; for (int i=;i<=;i++) fac[i]=fac[i-]*i%mod,inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for (int i=;i<=;i++) finv[i]=finv[i-]*inv[i]%mod; S[][]=;
for (int i=;i<=;i++) for (int j=;j<=i;j++)
S[i][j]=(S[i-][j-]+S[i-][j]*j)%mod; int T;
scanf("%d",&T);
while (T--)
{
scanf("%d%d%d",&n,&m,&k);
ans=;
pre(k);geta(k);
ll cnt=ksm(,m);
for (int i=;i<=k;i++)
{
ll s=,Cmj=,m_j=cnt;
for (int j=;j<=i;j++)
{
s+=S[i][j]*fac[j]%mod*Cmj%mod*m_j%mod;
Cmj=Cmj*(m-j)%mod*inv[j+]%mod;
m_j=m_j*inv2%mod;
}
f[i]=s%mod;
}
for (int i=;i<=k;i++)
{
ll s=;
for (int t=;t<=i;t++) s+=C(i,t)*bin[i-t]%mod*pnm[t]%mod*f[i-t]%mod;
ans+=s%mod*a[i]%mod;
}
printf("%lld\n",ans%mod);
}
}

[2016北京集训测试赛17]crash的游戏-[组合数+斯特林数+拉格朗日插值]的更多相关文章

  1. 2016北京集训测试赛(十七)Problem A: crash的游戏

    Solution 相当于要你计算这样一个式子: \[ \sum_{x = 0}^m \left( \begin{array}{} m \\ x \end{array} \right) \left( \ ...

  2. 【2016北京集训测试赛(八)】 crash的数列 (思考题)

    Description 题解 题目说这是一个具有神奇特性的数列!这句话是非常有用的因为我们发现,如果套着这个数列的定义再从原数列引出一个新数列,它居然还是一样的...... 于是我们就想到了能不能用多 ...

  3. 【2016北京集训测试赛(十)】 Azelso (期望DP)

    Time Limit: 1000 ms   Memory Limit: 256 MB Description 题解 状态表示: 这题的状态表示有点难想...... 设$f_i$表示第$i$个事件经过之 ...

  4. 【2016北京集训测试赛(二)】 thr (树形DP)

    Description 题解 (这可是一道很早就碰到的练习题然后我不会做不想做,没想到在Contest碰到欲哭无泪......) 题目大意是寻找三点对的个数,使得其中的三个点两两距离都为d. 问题在于 ...

  5. 【2016北京集训测试赛(十六)】 River (最大流)

    Description  Special Judge Hint 注意是全程不能经过两个相同的景点,并且一天的开始和结束不能用同样的交通方式. 题解 题目大意:给定两组点,每组有$n$个点,有若干条跨组 ...

  6. 【2016北京集训测试赛】river

    HINT 注意是全程不能经过两个相同的景点,并且一天的开始和结束不能用同样的交通方式. [吐槽] 嗯..看到这题的想法的话..先想到了每个点的度为2,然后就有点不知所措了 隐隐约约想到了网络流,但并没 ...

  7. 【2016北京集训测试赛】azelso

    [吐槽] 首先当然是要orzyww啦 以及orzyxq奇妙顺推很强qwq 嗯..怎么说呢虽然说之前零零散散做了一些概d的题目但是总感觉好像并没有弄得比较明白啊..(我的妈果然蒟蒻) 这题的话可以说是难 ...

  8. [2016北京集训测试赛15]statement-[线段树+拆环]

    Description Solution 由于题目要求,将a[i]->b[i](边权为i)后所得的图应该是由森林和环套树组合而成. 假如是树形结构,所有的t[i]就直接在线段树t[i]点的dfs ...

  9. [2016北京集训测试赛5]小Q与内存-[线段树的神秘操作]

    Description Solution 哇真的异常服气..线段树都可以搞合并和拆分的啊orzorz.神的世界我不懂 Code #include<iostream> #include< ...

随机推荐

  1. 二叉搜索树(Binary Search Tree)实现及测试

    转:http://blog.csdn.net/a19881029/article/details/24379339 实现代码:  Node.java  //节点类public class Node{ ...

  2. Android性能优化系列之APK终极瘦身策略

    第1条:使用一套资源 这是最基本的一条规则,但非常重要. 对于绝大对数APP来说,只需要取一套设计图就足够了.鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录. 相对于多套资源,只使用7 ...

  3. 腾讯云Centos安装jdk8

    1.下载jdk1.8的tar cd /usr/local/src #切换到该目录下 wget url #下载jdk8的tar包 2.下载完成后解压tar包 tar -zxvf jdk-8u152-li ...

  4. SQLSERVER文件组误脱机后如何联机

    场景:在学习文件组的恢复过程中,通过 ALTER DATABASE TEST MODIFY FILE(NAME = SUBF,OFFLINE) 把文件组给弄脱机了.这时却发现脱机之前忘记备份了. 这时 ...

  5. logger.error完整打印错误堆栈信息

    所以我们的写法可以是: Logger.error("xxx出错" , e); //第二个参数是e 而不是: Logger.error("xxx出错:" + e) ...

  6. 软件架构方面基础-ESB \SOA \GEO-ESB

    学习初稿 软件架构演变历史 SOA  (Service-Oriented Architecture)面向服务的体系结构 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起 ...

  7. NOIP2018考前抱佛脚——搜索复习

    目录 搜索 DFS 例1 P1101 单词方阵 题目描述 输入输出格式 输入输出样例 标程 例2 P1605 迷宫 题目背景 输入输出格式 输入输出样例 标程 例3 P1019 单词接龙 题目描述 输 ...

  8. tcp付金卡黛珊李方军拉萨

    进口量点卷啊首付款拉德斯基疯狂拉萨的

  9. Kafka学习之路 (五)Kafka在zookeeper中的存储

    一.Kafka在zookeeper中存储结构图 二.分析 2.1 topic注册信息 /brokers/topics/[topic] : 存储某个topic的partitions所有分配信息 [zk: ...

  10. vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令

    Docker Commands Docker provider公开了一些额外的vagrant命令,这些命令对于与Docker容器交互非常有用.这有助于你在vagrant之上的工作流程,这样你就可以在底 ...