P6620-[省选联考2020A卷]组合数问题【组合数学,斯特林数】
正题
题目链接:https://www.luogu.com.cn/problem/P6620
题目大意
给出\(n,x,p,m\)和一个\(m\)次多项式\(f\)求
\]
答案对\(p\)取模。
\(1\leq n\leq 10^9,1\leq m\leq 1000\)
解题思路
什么混凝土数学题
首先我们发现这个组合数\(\binom{n}{k}\)处理的十分难受,有一个下降幂的结论正好可以把这个难受的\(k\)变掉。
\]
我们需要找到一个东西来提供\(k^{\underline m}\),此时给我们的多项式\(f\)就是一个不错的选择。
我们考虑把多项式转换为下降幂的形式
\]
考虑一下怎么找到序列\(b_i\),也就是我们需要把\(x^i\)转换为下降幂的形式,有一个第二类斯特林数的性质就是
\]
\]
然后就可以继续推我们的式子了
\]
\]
把\(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卷]组合数问题【组合数学,斯特林数】的更多相关文章
- P6624-[省选联考2020A卷]作业题【矩阵树定理,欧拉反演】
正题 题目链接:https://www.luogu.com.cn/problem/P6624 题目大意 \(n\)个点的一张图,每条边有权值,一棵生成树的权值是所有边权和乘上边权的\(gcd\),即 ...
- [题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂
题目 题目里要求的是: \[\sum_{k=0}^n f(k) \times X^k \times \binom nk \] 这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项 ...
- P7515-[省选联考 2021A卷]矩阵游戏【差分约束】
正题 题目链接:https://www.luogu.com.cn/problem/P7515 题目大意 有一个\(n*m\)的矩形\(A\),然后给出一个\((n-1)*(m-1)\)的矩形\(B\) ...
- [省选联考 2020 A 卷] 组合数问题
题意 [省选联考 2020 A 卷] 组合数问题 想法 自己在多项式和数论方面还是太差了,最近写这些题都没多少思路,看完题解才会 首先有这两个柿子 \(k*\dbinom{n}{k} = n*\dbi ...
- luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数)
luoguP6620 [省选联考 2020 A 卷] 组合数问题(斯特林数) Luogu 题外话: LN切这题的人比切T1的多. 我都想到了组合意义乱搞也想到可能用斯特林数为啥还是没做出来... 我怕 ...
- 题解 P6622 [省选联考 2020 A/B 卷] 信号传递
洛谷 P6622 [省选联考 2020 A/B 卷] 信号传递 题解 某次模拟赛的T2,考场上懒得想正解 (其实是不会QAQ), 打了个暴力就骗了\(30pts\) 就火速溜了,参考了一下某位强者的题 ...
- [省选联考 2021 A 卷] 矩阵游戏
很巧妙的一个构造. 我是没有想到的. 自己的思维能力可能还是不足. 考虑先满足\(b\)对\(a\)的限制,把\(a\)的第一行和第一列设\(0\),推出这个\(a\). 接下来考虑对这个\(a\), ...
- [省选联考 2021 A/B 卷] 卡牌游戏
垃圾福建垫底选手来看看这题. 大家怎么都写带 \(log\) 的. 我来说一个线性做法好了. 那么我们考虑枚举 \(k\) 作为翻转完的最小值. 那么构造出一个满足条件的操作,我们在 \(a_i\) ...
- luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp)
luoguP6622 [省选联考 2020 A/B 卷] 信号传递(状压dp) Luogu 题外话: 我可能是傻逼, 但不管我是不是傻逼, 我永远单挑出题人. 题解时间 看数据范围可以确定状压dp. ...
随机推荐
- 如何在HTML中实现图片的滚动效果
<MARQUEE onmouseover=stop() onmouseout=start() scrollAmount=3 loop=infinite deplay="0"& ...
- .net core2.1 迁移.net core 3.1
1.解决方案->属性-->目标框架 .net core3.1 2.删除旧的Nuget包添加新的NuGet包 3.修改Startup.cs 修改ConfigureServices 修改Con ...
- Spring详解(十)------spring 环境切换
软件开发过程一般涉及"开发 -> 测试 -> 部署上线"多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等.为避免每次切换环境时都要进行参数配置等繁琐的操 ...
- BootStrap Table超好用的表格组件基础入门
右侧导航条有目录哟,看着更方便 快速入门 表格构建 API简单介绍 主要研究功能介绍 快速入门 最好的资源官方文档 官方文档地址****https://bootstrap-table.com/docs ...
- Python 3.10 is coming!
看看Python 官网的文档 whatsnew,Python 3.10 已然距离我们越来越近了,然我们看看 Python 3.10 相较于 Python 3.9 有哪些改变吧 新特性 通过括号来组织多 ...
- uni-app 小程序从零开始的开发流程
前言 本文基于 HBuilderX 3.1.22 + 微信开发者工具 1.05.2106300为主要内容进行说明. 文档版本:1.0.0 更新时间:2021-09-03 15:32 一.准备 uni- ...
- 《Go语言圣经》阅读笔记:第二章程序结构
第二章 程序结构 2.1 命名 在GO语言中,所有的变量名.函数.常量.类型.语句标号.包名都遵循一个原则: 名字必须以字母或者下划线开头,后面紧跟任意数量的字母数字下划线.区分大小写. 在GO语言中 ...
- (三、四)Superset 1.3图表篇——透视表-Pivot Table
本系列文章基于Superset 1.3.0版本.1.3.0版本目前支持分布,趋势,地理等等类型共59张图表.本次1.3版本的更新图表有了一些新的变化,而之前也一直没有做过非常细致的图表教程. 而且目前 ...
- Vue+element基本增删改查
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- Linux学习笔记--终端命令
~ 表示用户目录路径 ls 显示当前目录下的文件或目录 -l 列出文件纤细信息l(list) -a 列出当前目录下所有文件及目录, 包含隐藏的a(all) mkdir 创建目录 -p 创建目录 ...