后面有一只大大的组合数,考虑下降幂干过去。\(x^k\) 并不好使,这边考虑转化 \(f(x)=\sum a_ix^i=\sum b_ix^\underline i\)。

\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{k=0}^nx^k\sum_{i=0}^mb_ik^\underline i\binom nk
\]
\[=\sum_{k=0}^nx^k\sum_{i=0}^mb_in^\underline i\binom{n-i}{k-i}
\]
\[=\sum_{i=0}^mb_in^\underline i\sum_{k=0}^{n-i}x^{k+i}\binom{n-i}k
\]
\[=\sum_{i=0}^mb_in^\underline ix^i(x+1)^{n-i}
\]

最后一步的转化是二项式定理。

那现在问题变为如何快速求解 \(b_i\)。考虑第二类斯特林数。

\[\sum_{i=0}^ma_ix^i=\sum_{i=0}^ma_i\sum_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix}x^\underline j
\]
\[=\sum_{i=0}^mx^\underline i\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix}
\]
\[\sum_{i=0}^mb_ix^\underline i=\sum_{i=0}^mx^\underline i\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix}
\]
\[b_i=\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix}
\]
\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{i=0}^mn^\underline ix^i(x+1)^{n-i}\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix}
\]

那预处理出第二类斯特林数即可。时间复杂度 \(O(m^2)\)。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1005;
int n,x,p,m,str[N][N],a[N],ans;
int qpow(int x,int y){
int re=1;
while(y){
if(y&1) re=re*x%p;
x=x*x%p,y>>=1;
}return re;
}signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>x>>p>>m,str[0][0]=1;
for(int i=1;i<=m;i++) for(int j=1;j<=i;j++)
str[i][j]=(str[i-1][j-1]+j*str[i-1][j])%p;
for(int i=0;i<=m;i++) cin>>a[i];
for(int i=0,sum=0;i<=m;i++,sum=0){
for(int j=i;j<=m;j++)
sum=(sum+a[j]*str[j][i])%p;
for(int j=n-i+1;j<=n;j++)
sum=sum*j%p*x%p;
ans=(ans+sum*qpow(x+1,n-i))%p;
}cout<<ans;
return 0;
}

[联合省选 2020A] 组合数问题 题解的更多相关文章

  1. luoguP1036 选数 暴力AC题解

    luoguP1036 选数 暴力AC题解(非正解) 俗话说得好:暴力出奇迹,打表拿省一. 对于一些暴力就能拿分的题,暴力就好啦QWQ 题目描述   输入格式 输出格式 输入输出样例 定义变量 我们令输 ...

  2. 【NOI2019十二省联合省选】部分题简要题解

    Day 1 T1 异或粽子 题意:给出一个长为n的序列,选择K个不完全重合的区间使得每个区间的异或值的总和最大. 题解:先做一个前缀异或和,对于每一个右端点我们记录三元组(l,r,x)表示在左端点在\ ...

  3. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  4. BZOJ4870:[SHOI2017]组合数问题——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4870 https://www.luogu.org/problemnew/show/P3746 看网上 ...

  5. cdcqの省选膜你赛 题解

    题解: 第一题: 有一个很明显的性质:后面的修改不会对前面的询问做出影响,CDQ分治套上BIT即可. 第二题: 有一个类似于斜率的形式,分数规划套上树分治,码量稍大,细节稍多. 最后20W的点出题人原 ...

  6. 洛谷 P2822 组合数问题 题解

    今天又考试了...... 这是T2. Analysis 考试时想了一个判断质因数个数+打表的神奇方法,但没在每次输入n,m时把ans置0,50分滚粗. 看了题解才发现原来是杨辉三角+二维前缀和,果然还 ...

  7. 【NOIP2016】组合数问题 题解(组合数学+递推)

    题目链接 题目大意:给定$n,m,k$,求满足$k|C_i^j$的$C_i^j$的个数.$(0\leq i\leq n,1\leq j\leq \min(i,m))$. --------------- ...

  8. JSOI(联合省选)2021 划水记

    流水账. Day 0 18:10 去本部拿准考证,结果发现已经没有人了./ruo 敲了几份板子,很早就去睡觉了. Day 1 7:30 到 NFLS 拿到准考证,几乎没有人来.于是做起了政治作业. 然 ...

  9. 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解

    传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变 ...

  10. NOIP 2016 组合数问题 题解

    一道sb题目,注意范围,可打表解决,打出杨辉三角,在用前缀和求解即可 代码(一维前缀和) #include<bits/stdc++.h> using namespace std; int ...

随机推荐

  1. spring cloud 使用nacos 作为配置中心

    概要 nacos 可以作为服务注册发现中心,也可以作为配置中心,作为配置中心的时候,系统的配置可以做到自动刷新,即当配置服务器的数据发生更改时,客户端的配置会进行自动的更新. 实现步骤 1.修改mav ...

  2. C++顺序结构(2)学习任务

    在坚果云中注册免费个人云盘 一.视频下载存放在规划好的文件夹中,并观看学习 1.变量存储.注释 2.四则运算.输入 3.认识设置DEV-C++ 4.第一个C++程序 5.头文件 6.命名空间 7.co ...

  3. Flutter Stream的使用

    Flutter Stream的使用 首先,来了解一下stream是什么 异步数据事件的来源. 流提供了一种接收一系列事件的方法.每个事件要么是一个数据事件,也称为流的元素,要么是一个错误 事件,即某事 ...

  4. 【Linux】Deepin安装Anaconda后手动配置环境变量

    配置环境变量 如果安装完毕后,重新打开终端,输入conda表示没找到这个命令 说明没有配置环境变量 那么我们首先第一件事,就是找到我们的conda安装到哪里了 例如我的是安装到主目录的(默认在这的,安 ...

  5. 【MyBatis】学习笔记04:配置文件模板

    [Mybatis]学习笔记01:连接数据库,实现增删改 [Mybatis]学习笔记02:实现简单的查 [MyBatis]学习笔记03:配置文件进一步解读(非常重要) 目录 IDEA配置模板的地方 核心 ...

  6. StreamUtils

    package com.redis.utils; import com.SpringUtils; import com.StringUtils; import lombok.extern.slf4j. ...

  7. docker limit

    我给docker的systemd

  8. Qt边推流边录制/实时性好延迟低/16路1080P推流加录制只占1%CPU/优化到极致

    一.前言 这个一边推流一边录制的功能,有很多用户提到过,之前因为时间的原因,一直没有搞,年初的时候索性抽空搞了下,也着实费了些功夫.推流用的是ffmpeg这个开源的牛逼的第三方库,搞音视频开发的人应该 ...

  9. [转]奇异值分解(SVD)方法求解最小二乘问题的原理

    原文链接:奇异值分解(SVD)方法求解最小二乘问题的原理 翻译 搜索 复制

  10. Python 并发编程实战:优雅地使用 concurrent.futures

    在 Python 多线程编程中,concurrent.futures 模块提供了一个高层的接口来异步执行可调用对象.今天,我们将通过一个循序渐进的案例,深入了解如何使用这个强大的工具. 从一个模拟场景 ...