[题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂
题目
题目里要求的是:
\]
这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项式转成下降幂多项式。这一步可以做到\(O(mlogm)\),(模板)但是这题不需要,这个后面再说。假设现在已经得出了f的下降幂多项式的系数\(b_i\),则:
f(k)&=\sum_{i=0}^m b_ik^{\underline i}\\
ans&=\sum_{k=0}^n f(k) \times X^k \times \binom nk\\
&=\sum_{k=0}^n \sum_{i=0}^m b_i k^{\underline i} X^k\frac{n!}{(n-k)!k!}\\
&=\sum_{i=0}^m b_i \sum_{k=i}^n \frac{k!}{(k-i)!}\cdot \frac{n!}{(n-k)!k!}(交换求和符号,k从i开始因为k<i时下降幂的值为0)\\
&=\sum_{i=0}^m b_i \sum_{k=i}^n \frac{(n-i)!}{(k-i)!(n-k)!}\cdot X^{k-i}\cdot 1^{n-k}X^i\cdot n^{\underline i}\\
&=\sum_{i=0}^m b_i \sum_{k=i}^n \binom{n-i}{k-i}\cdot X^{k-i}\cdot 1^{n-k}X^i\cdot n^{\underline i}\\
&=\sum_{i=0}^m b_i (1+x)^{n-i}X_i\cdot n^{\underline i}(二项式定理,这种题的套路)\\
\end{align}
\]
\(k^{\underline i}\)表示k的i次下降幂。所以只要求出\(b_i\)就能\(O(m)\)完成计算。
众所周知 \(x^n=\sum_{i=0}^n S2(n,i) x^{\underline i}\)
所以
\sum_{i=0}^m a_i x^i&=\sum_{i=0}^m a_i \sum_{j=0}^i S2(i,j) x^{\underline j}\\
&=\sum_{i=0}^m x^{\underline i} \sum_{j=i}^m a_j S2(j,i)(交换求和符号)\\
\end{align}
\]
所以\(b_i=\sum_{j=i}^m a_j S2(j,i)\)。
第二类斯特林数可以暴力\(O(m^2)\)递推:\(S2(n,m)=S2(n-1,m-1)+m \cdot S2(n-1,m)\)。
总时间复杂度\(O(m^2)\)。
点击查看代码
#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;++i)
#define repn(i,n) for(int i=1;i<=n;++i)
#define LL long long
#define pii pair <LL,LL>
#define fi first
#define se second
#define mpr make_pair
#define pb push_back
using namespace std;
LL n,x,MOD,m,a[1010],b[1010],s2[1010][1010],ans=0;
LL qpow(LL xx,LL a)
{
LL res=xx,ret=1;
while(a>0)
{
if((a&1)==1) ret=ret*res%MOD;
a>>=1;
res=res*res%MOD;
}
return ret;
}
int main()
{
cin>>n>>x>>MOD>>m;
rep(i,m+1) scanf("%lld",&a[i]);
s2[0][0]=s2[1][1]=1;
for(int i=2;i<=m+3;++i) repn(j,i) s2[i][j]=(s2[i-1][j-1]+s2[i-1][j]*(LL)j)%MOD;
rep(i,m+1) for(int j=i;j<=m;++j) (b[i]+=a[j]*s2[j][i])%=MOD;
LL mul=1;
rep(i,m+1)
{
(ans+=b[i]*qpow(1+x,n-i)%MOD*qpow(x,i)%MOD*mul)%=MOD;
(mul*=(n-i))%=MOD;
}
cout<<ans<<endl;
return 0;
}
[题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂的更多相关文章
- 洛谷P6623——[省选联考 2020 A 卷] 树
传送门:QAQQAQ 题意:自己看 思路:正解应该是线段树/trie树合并? 但是本蒟蒻啥也不会,就用了树上二次差分 (思路来源于https://www.luogu.com.cn/blog/dengy ...
- 洛谷 P6624 - [省选联考 2020 A 卷] 作业题(矩阵树定理+简单数论)
题面传送门 u1s1 这种题目还是相当套路的罢 首先看到 \(\gcd\) 可以套路地往数论方向想,我们记 \(f_i\) 为满足边权的 \(\gcd\) 为 \(i\) 的倍数的所有生成树的权值之和 ...
- [省选联考 2020 A 卷] 组合数问题
题意 [省选联考 2020 A 卷] 组合数问题 想法 自己在多项式和数论方面还是太差了,最近写这些题都没多少思路,看完题解才会 首先有这两个柿子 \(k*\dbinom{n}{k} = n*\dbi ...
- luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数)
luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数) Luogu 题外话: LN切这题的人比切T1的多. 我都想到了组合意义乱搞也想到可能用斯特林数为啥还是没做出来... 我怕 ...
- 洛谷 P7520 - [省选联考 2021 A 卷] 支配(支配树)
洛谷题面传送门 真·支配树不 sb 的题. 首先题面已经疯狂暗示咱们建出支配树对吧,那咱就老老实实建呗.由于这题数据范围允许 \(n^2\) 算法通过,因此可以考虑 \(\mathcal O(n^2 ...
- 洛谷 P7515 - [省选联考 2021 A 卷] 矩阵游戏(差分约束)
题面传送门 emmm--怎么评价这个题呢,赛后学完差分约束之后看题解感觉没那么 dl,可是现场为啥就因为种种原因想不到呢?显然是 wtcl( 先不考虑"非负"及" \(\ ...
- luoguP6623 [省选联考 2020 A 卷] 树(trie树)
luoguP6623 [省选联考 2020 A 卷] 树(trie树) Luogu 题外话: ...想不出来啥好说的了. 我认识的人基本都切这道题了. 就我只会10分暴力. 我是傻逼. 题解时间 先不 ...
- luoguP6624 [省选联考 2020 A 卷] 作业题(莫比乌斯反演,矩阵树定理)
luoguP6624 [省选联考 2020 A 卷] 作业题(莫比乌斯反演,矩阵树定理) Luogu 题外话: Day2一题没切. 我是傻逼. 题解时间 某种意义上说刻在DNA里的柿子,大概是很多人学 ...
- 洛谷 P7516 - [省选联考 2021 A/B 卷] 图函数(Floyd)
洛谷题面传送门 一道需要发现一些简单的性质的中档题(不过可能这道题放在省选 D1T3 中偏简单了?) u1s1 现在已经是 \(1\text{s}\) \(10^9\) 的时代了吗?落伍了落伍了/ ...
随机推荐
- $\mathcal{A\,F\,O}$
突然间,告诉我不用学计算机了 真的有点像是做梦 回忆自己的OI生涯 真的不知从何说起 小学的时候 被家长哄着报名了当时很热门的 logo语言 在炎热的夏天,电脑里小海龟的步伐从未停歇 那时的自己很骄傲 ...
- SpringBoot到底是什么?
摘要:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 本文分享自华为云社区<SpringBoot到底是什么?如何理解p ...
- 浅谈hooks——useEffect
react 16.8发布以来,函数式写法逐渐取代class的写法,在react函数式写法中,最重要是就是react所推出的新特性:hook,今天就来简单谈谈最基础的hook--useEffect 在r ...
- python 链表、堆、栈
简介 很多开发在开发中并没有过多的关注数据结构,当然我也是,因此,我写这篇文章就是想要带大家了解一下这些分别是什么东西. 链表 概念:数据随机存储,并且通过指针表示数据之间的逻辑关系的存储结构. 链表 ...
- mysql 之full join
首先,mysql中是不支持full join的,如果要实现类似的功能可以用union all,union会剔除重复.以下是实现实例 create table if not exists t1(`id` ...
- Win10系统下搭建Go lang开发环境更换国内源并且体验宇宙最快框架Iris
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_156 最近有同学开始尝试接触Go lang,拥抱新技术永远都会是一个好习惯,之前的一篇文章介绍了如何在Mac os系统下配置Go ...
- GreatSQL特性介绍及前景展望 | 数据技术嘉年华2021分享PPT发布
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 全 ...
- Java开发学习(二十四)----SpringMVC设置请求映射路径
一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...
- 监督学习集成模型——AdaBoost
一.集成学习与Boosting 集成学习是指将多个弱学习器组合成一个强学习器,这个强学习器能取所有弱学习器之所长,达到相对的最佳性能的一种学习范式. 集成学习主要包括Boosting和Bagging两 ...
- C语言:多功能计算器 (矩阵相乘)
好家伙,实现矩阵相乘功能 代码如下: void fifth()//矩阵的相乘// { int a[100][100],b[100][100]; int d,e,f,h,j,k,t; double su ...