正题

题目链接:https://www.luogu.com.cn/problem/P6620


题目大意

给出\(n,x,p,m\)和一个\(m\)次多项式\(f\)求

\[\sum_{k=0}^nf(k)\times x^k\times \binom{n}{k}
\]

答案对\(p\)取模。

\(1\leq n\leq 10^9,1\leq m\leq 1000\)


解题思路

什么混凝土数学题

首先我们发现这个组合数\(\binom{n}{k}\)处理的十分难受,有一个下降幂的结论正好可以把这个难受的\(k\)变掉。

\[\binom{n}{k}\times k^{\underline{m}}=\binom{n-m}{k-m}\times n^{\underline m}
\]

我们需要找到一个东西来提供\(k^{\underline m}\),此时给我们的多项式\(f\)就是一个不错的选择。

我们考虑把多项式转换为下降幂的形式

\[f(x)=\sum_{i=0}^ma_ix^i=\sum_{i=0}^mb_ix^{\underline i}
\]

考虑一下怎么找到序列\(b_i\),也就是我们需要把\(x^i\)转换为下降幂的形式,有一个第二类斯特林数的性质就是

\[x^n=\sum_{i=0}^{n}{\begin{Bmatrix}n\\i\end{Bmatrix}}x^{\underline 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}\Rightarrow b_i=\sum_{i=j}^n{\begin{Bmatrix}j\\i\end{Bmatrix}}x^{\underline{i}}
\]

然后就可以继续推我们的式子了

\[\sum_{k=0}^n\sum_{i=0}^mb_ik^{\underline i}\times x^k\times \binom{n}{k}
\]
\[\sum_{k=0}^n\sum_{i=0}^mb_ix^k\binom{n-i}{k-i}n^{\underline i}
\]

把\(i\)提出去枚举

\[\sum_{i=0}^mb_in^{\underline i}\sum_{k=0}^nx^k\binom{n-i}{k-i}
\]
\[\Rightarrow \sum_{i=0}^mb_in^{\underline i}x^i\sum_{k=0}^{n-i}\binom{n-i}{k}x^k
\]

然后后面那个式子就可以二项式定理了

\[\Rightarrow \sum_{i=0}^mb_in^{\underline i}x^i(x+1)^{n-i}
\]

然后就搞定了

时间复杂度\(O(m^2+m\log n)\)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1100;
ll n,x,m,P,a[N],b[N],s[N][N],ans;
ll power(ll x,ll b){
ll ans=1;
while(b){
if(b&1)ans=ans*x%P;
x=x*x%P;b>>=1;
}
return ans;
}
signed main()
{
scanf("%lld%lld%lld%lld",&n,&x,&P,&m);
for(ll i=0;i<=m;i++)scanf("%lld",&a[i]);
s[0][0]=1;
for(ll i=1;i<=m;i++)
for(ll j=1;j<=i;j++)
s[i][j]=(s[i-1][j]*j%P+s[i-1][j-1])%P;
for(ll i=0;i<=m;i++)
for(ll j=i;j<=m;j++)
(b[i]+=a[j]*s[j][i]%P)%=P;
for(ll i=0,tmp=1;i<=m;i++){
(ans+=b[i]*tmp%P*power(x,i)%P*power(x+1,n-i)%P)%=P;
tmp=tmp*(n-i)%P;
}
printf("%lld\n",ans);
return 0;
}

P6620-[省选联考2020A卷]组合数问题【组合数学,斯特林数】的更多相关文章

  1. P6624-[省选联考2020A卷]作业题【矩阵树定理,欧拉反演】

    正题 题目链接:https://www.luogu.com.cn/problem/P6624 题目大意 \(n\)个点的一张图,每条边有权值,一棵生成树的权值是所有边权和乘上边权的\(gcd\),即 ...

  2. [题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂

    题目 题目里要求的是: \[\sum_{k=0}^n f(k) \times X^k \times \binom nk \] 这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项 ...

  3. P7515-[省选联考 2021A卷]矩阵游戏【差分约束】

    正题 题目链接:https://www.luogu.com.cn/problem/P7515 题目大意 有一个\(n*m\)的矩形\(A\),然后给出一个\((n-1)*(m-1)\)的矩形\(B\) ...

  4. [省选联考 2020 A 卷] 组合数问题

    题意 [省选联考 2020 A 卷] 组合数问题 想法 自己在多项式和数论方面还是太差了,最近写这些题都没多少思路,看完题解才会 首先有这两个柿子 \(k*\dbinom{n}{k} = n*\dbi ...

  5. luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数)

    luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数) Luogu 题外话: LN切这题的人比切T1的多. 我都想到了组合意义乱搞也想到可能用斯特林数为啥还是没做出来... 我怕 ...

  6. 题解 P6622 [省选联考 2020 A/B 卷] 信号传递

    洛谷 P6622 [省选联考 2020 A/B 卷] 信号传递 题解 某次模拟赛的T2,考场上懒得想正解 (其实是不会QAQ), 打了个暴力就骗了\(30pts\) 就火速溜了,参考了一下某位强者的题 ...

  7. [省选联考 2021 A 卷] 矩阵游戏

    很巧妙的一个构造. 我是没有想到的. 自己的思维能力可能还是不足. 考虑先满足\(b\)对\(a\)的限制,把\(a\)的第一行和第一列设\(0\),推出这个\(a\). 接下来考虑对这个\(a\), ...

  8. [省选联考 2021 A/B 卷] 卡牌游戏

    垃圾福建垫底选手来看看这题. 大家怎么都写带 \(log\) 的. 我来说一个线性做法好了. 那么我们考虑枚举 \(k\) 作为翻转完的最小值. 那么构造出一个满足条件的操作,我们在 \(a_i\) ...

  9. luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp)

    luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp) Luogu 题外话: 我可能是傻逼, 但不管我是不是傻逼, 我永远单挑出题人. 题解时间 看数据范围可以确定状压dp. ...

随机推荐

  1. Walkthrough: Create and use your own Dynamic Link Library (C++)

    参考网站:https://docs.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-librar ...

  2. Hibernate脑图

  3. sparksql解析流程

    1.sparkSql处理核心:Catalyst工作流程(本质:把sql.dataframe相结合,以树tree的形式来存储.优化) 2.catalyst工作流程 1)Parser(解析器):SqlPa ...

  4. 利用元数据提高 SQLFlow 血缘分析结果准确率

    利用元数据提高 SQLFlow 血缘分析结果准确率 一.SQLFlow--数据治理专家的一把利器 数据血缘属于数据治理中的一个概念,是在数据溯源的过程中找到相关数据之间的联系,它是一个逻辑概念.数据治 ...

  5. Heartbeat MySQL双主复制

    目录 一 基础环境 二 实际部署 2.1 安装MySQL 2.2 初始化MySQL 2.3 master01 my.cf配置 2.4 创建账号 2.5 master02 my.cf配置配置 2.6 创 ...

  6. 小程序 读取照片 EXIF 元信息

    安装 exif.js npm install exif-js --save UI <button type="primary" @click="onExif&quo ...

  7. Springboot 整合通用mapper和pagehelper展示分页数据(附github源码)

    简介 springboot 设计目的就是为了加速开发,减少xml的配置.如果你不想写配置文件只需要在配置文件添加相对应的配置就能快速的启动的程序. 通用mapp 通用mapper只支持对单表的操作,对 ...

  8. 最详尽的 JS 原型与原型链终极详解(1)(2)(3)===转载

    转载===方便以后复习 原文网址:https://www.jianshu.com/p/dee9f8b14771 一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为 ...

  9. Linux - 解决使用 apt-get 安装 yum 的时耗报 E: Unable to locate package yum 的错误

    问题背景 在 Linux 系统下使用 apt-get 命令安装 yum 库报错 apt-get install yum E: Unable to locate package yum 问题解决 一行命 ...

  10. Git 系列教程(10)- 仓库别名

    Git 别名 前言 Git 并不会在你输入部分命令时自动推断出你想要的命令 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名 $ git c ...