解析

给出 n,x,pn,x,pn,x,p 和一个 mmm 次的多项式 f(k)f(k)f(k),求解:
∑k=0nf(k)xk(nk)modp\sum_{k=0}^nf(k)x^k\binom n k\mod pk=0∑n​f(k)xk(kn​)modp
把多项式拆成若干个单项式,现在就是要求:
∑k=0nkpxk(nk)\sum_{k=0}^nk^px^k\binom n kk=0∑n​kpxk(kn​)
直接拆阶乘,可以得到:
(nk)k=n(n−1k−1)\binom n kk=n\binom {n-1}{k-1}(kn​)k=n(k−1n−1​)
尝试把 kpk^pkp 揉进组合数:
(nk)k=n(n−1k−1)\binom n k k=n\binom {n-1}{k-1}(kn​)k=n(k−1n−1​)
(nk)k2=kn(n−1k−1)=n(n−1)(n−2k−2)+n(n−1k−1)\binom n k k^2=kn\binom {n-1}{k-1}=n(n-1)\binom{n-2}{k-2}+n\binom{n-1}{k-1}(kn​)k2=kn(k−1n−1​)=n(n−1)(k−2n−2​)+n(k−1n−1​)
(nk)k3=k(n(n−1)(n−2k−2)+n(n−1k−1))\binom n k k^3=k(n(n-1)\binom{n-2}{k-2}+n\binom{n-1}{k-1})(kn​)k3=k(n(n−1)(k−2n−2​)+n(k−1n−1​))
=n(n−1)(n−2)(n−3k−3)+2n(n−1)(n−2k−2)+n(n−1)(n−2k−2)+n(n−1k−1)=n(n-1)(n-2)\binom{n-3}{k-3}+2n(n-1)\binom{n-2}{k-2}+n(n-1)\binom{n-2}{k-2}+n\binom{n-1}{k-1}=n(n−1)(n−2)(k−3n−3​)+2n(n−1)(k−2n−2​)+n(n−1)(k−2n−2​)+n(k−1n−1​)
=n(n−1)(n−2)(n−3k−3)+3n(n−1)(n−2k−2)+n(n−1k−1)=n(n-1)(n-2)\binom{n-3}{k-3}+3n(n-1)\binom{n-2}{k-2}+n\binom{n-1}{k-1}=n(n−1)(n−2)(k−3n−3​)+3n(n−1)(k−2n−2​)+n(k−1n−1​)
归纳以下,可以有:
(nk)kp=∑i=1pni‾(n−ik−i)s(p,i)\binom n k k^p=\sum_{i=1}^pn^{\underline i}\binom {n-i}{k-i}s(p,i)(kn​)kp=i=1∑p​ni​(k−in−i​)s(p,i)
其中 s(p,i)s(p,i)s(p,i) 为转移系数。
考虑这个转移系数怎么来的,它可以从 p−1p-1p−1 行的 s(p−1,i)s(p-1,i)s(p−1,i) 的 kkk 拆出一个 (k−i),i(k-i),i(k−i),i 时得到 i∗s(p−1,i)i*s(p-1,i)i∗s(p−1,i),也可以从 s(p−1,i−1)s(p-1,i-1)s(p−1,i−1) 升一个上来,所以有:
s(p,i)=i∗s(p−1,i)+s(p−1,i−1)s(p,i)=i*s(p-1,i)+s(p-1,i-1)s(p,i)=i∗s(p−1,i)+s(p−1,i−1)
边界为:s(1,1)=1s(1,1)=1s(1,1)=1。
注意到,这个东西其实就是第二类斯特林数
那么我们接着推:
∑k=0nkpxk(nk)=∑k=0nxk∑i=1pni‾(n−ik−i)s(p,i)=∑i=1pni‾s(p,i)∑k=inxk(n−ik−i)\sum_{k=0}^nk^px^k\binom n k=\sum_{k=0}^nx^k\sum_{i=1}^pn^{\underline i}\binom {n-i}{k-i}s(p,i)=\sum_{i=1}^pn^{\underline i}s(p,i)\sum_{k=i}^nx^k\binom {n-i}{k-i}k=0∑n​kpxk(kn​)=k=0∑n​xki=1∑p​ni​(k−in−i​)s(p,i)=i=1∑p​ni​s(p,i)k=i∑n​xk(k−in−i​)
=∑i=1pni‾s(p,i)xi∑k=0n−ixk(n−ik)=∑i=1pni‾s(p,i)xi(1+x)n−i=\sum_{i=1}^pn^{\underline i}s(p,i)x^i\sum_{k=0}^{n-i}x^k\binom {n-i}{k}=\sum_{i=1}^pn^{\underline i}s(p,i)x^i(1+x)^{n-i}=i=1∑p​ni​s(p,i)xik=0∑n−i​xk(kn−i​)=i=1∑p​ni​s(p,i)xi(1+x)n−i
带回到最初的式子:(注意前面的式子需要 p≥1p\ge 1p≥1,所以常数项单独算)
ans=∑p=1map∑i=1pni‾s(p,i)xi(1+x)n−i+a0(1+x)nans=\sum_{p=1}^ma_p\sum_{i=1}^pn^{\underline i}s(p,i)x^i(1+x)^{n-i}+a_0(1+x)^nans=p=1∑m​ap​i=1∑p​ni​s(p,i)xi(1+x)n−i+a0​(1+x)n
=∑i=1mxi(1+x)n−ini‾∑p=imaps(p,i)=\sum_{i=1}^mx^i(1+x)^{n-i}n^{\underline i}\sum_{p=i}^ma_ps(p,i)=i=1∑m​xi(1+x)n−ini​p=i∑m​ap​s(p,i)
总复杂度 O(m(m+log⁡n))O(m(m+\log n))O(m(m+logn))

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define ok debug("OK\n")
using namespace std;const int N=1050;
const int inf=1e9;
int mod;inline ll read(){ll x(0),f(1);char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}inline ll ksm(ll x,ll k){ll res(1);while(k){if(k&1) res=res*x%mod;x=x*x%mod;k>>=1;}return res;
}int n,m,x;
ll s[N][N],a[N];signed main() {#ifndef ONLINE_JUDGE//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);
#endifn=read();x=read();mod=read();m=read();for(int i=0;i<=m;i++) a[i]=read();ll ans=a[0]*ksm(x+1,n)%mod;s[0][0]=1;for(int i=1;i<=m;i++){for(int j=1;j<=i;j++) s[i][j]=(j*s[i-1][j]+s[i-1][j-1])%mod;}for(int j=1;j<=m;j++){ll bas=ksm(x,j)*ksm(x+1,n-j)%mod;for(int i=1;i<=j;i++) bas=bas*(n-i+1)%mod;//ll res(0);for(int i=j;i<=m;i++) (ans+=bas*s[i][j]%mod*a[i])%=mod;}printf("%lld\n",ans);return 0;
}
/*
*/

P6620 [省选联考 2020 A 卷] 组合数问题(斯特林数、下降幂)相关推荐

  1. P6628-[省选联考 2020 B 卷] 丁香之路【欧拉回路,最小生成树】

    正题 题目链接:https://www.luogu.com.cn/problem/P6628 题目大意 给出nnn个点的一张完全无向图,i∼ji\sim ji∼j的边权是∣i−j∣|i-j|∣i−j∣ ...

  2. 省选联考 2020 A 卷

    省赛虽然炸了,但题解还是要写滴(笑) 第 200 篇 b l o g 祭 ! ! \Huge 第200篇blog祭!! 第200篇blog祭!! 组合数问题 题意简单明了 首先要看出要把多项式的每一项 ...

  3. [省选联考 2020 B 卷] 卡牌游戏 题解c++

    看到这题,真的忒简单啊! 咳咳,开个玩笑.关于这题: 题目描述 轩轩某天想到了一个卡牌游戏,游戏规则如下: 初始时轩轩的手中有自左向右排成一排的 n 张卡牌,每张卡牌上有一个整数分值. 接下来,轩轩每 ...

  4. [省选联考 2020 A/B 卷] 信号传递(状压dp + 卡空间)

    problem luogu-P6622 一条道路上从左至右排列着 mmm 个信号站,初始时从左至右依次编号为 1,2,-,m1,2,\dots,m1,2,-,m,相邻信号站之间相隔 111 单位长度. ...

  5. [省选联考 2020 A/B 卷] 冰火战士(树状数组上二分)

    文章目录 problem solution(10pts) code(10pts) solution(30pts) code(30pts) solution(60pts) code(60pts) sol ...

  6. P7520-[省选联考 2021 A 卷]支配

    正题 题目链接:https://www.luogu.com.cn/problem/P7520 题目大意 给出nnn个点mmm条边的一张有向图,一号点为起始点,qqq次独立的询问加入一条边后有多少个点的 ...

  7. P7516-[省选联考2021A/B卷]图函数【bfs】

    正题 题目链接:https://www.luogu.com.cn/problem/P7516 题目大意 懒了,直接抄题意了 对于一张 nnn 个点 mmm 条边的有向图 GGG(顶点从 1∼n1 \s ...

  8. P7518-[省选联考2021A/B卷]宝石【主席树,二分】

    正题 题目链接:https://www.luogu.com.cn/problem/P7518 题目大意 给出nnn个点的一棵树,每个点上有不大于mmm的数字. 然后给出一个长度为ccc的各个位数不同的 ...

  9. P6619-[省选联考2020A/B卷]冰火战士【树状数组二分】

    正题 题目链接:https://www.luogu.com.cn/problem/P6619 题目大意 有火系战士和冰系战士有一个温度和一个战斗力,每次加入或删除一个战士,要求一个最大的kkk使得温度 ...

最新文章

  1. 服务器虚拟化集成项目投标方案,服务器虚拟化投标技术方案(纯方案,16页).doc...
  2. 年中盘点:2021年最炙手可热的10家AI初创公司
  3. 如何实现RESTful Web API的身份验证
  4. [软考]2013年系统架构设计师备考
  5. 胡渊鸣的「太极图形」又融了5000万美元,接下来推出3D内容创作平台
  6. linux mamp 设备内存
  7. Py中的类型注解【转载】
  8. 论文浅尝 | 基于复杂查询图编码的知识库问答
  9. 【Python】 [基础] 条件判断 与 循环 与dict和set
  10. iOS的UILabel设置居上对齐,居中对齐,居下对齐
  11. 绘制带省份的中国地图
  12. windirstat怎么用_使用WinDirStat分析和管理硬盘空间
  13. 转:战略思维的五个要素,你都具备了吗?
  14. matlab做挖掘机仿真,基于Proe_Adams_Matlab挖掘机的机电液一体化仿真
  15. python百度地图api经纬度_详解用Python调用百度地图正/逆地理编码API
  16. 电商ERP如何接入快递鸟电子面单API?
  17. 电压跟随器的作用-摘录+自解
  18. 单目标追踪——常见的评价指标和评估方法梳理
  19. android的手机壳,Android手机壳专场,送礼自用两相宜
  20. Flink学习笔记(八):flink热词统计

热门文章

  1. html语言简单,简单的html语言计算器
  2. 小学学校计算机教室使用计划,小学电脑室工作计划
  3. java语言程序设计一_java语言程序设计(一)-1
  4. linux一键启动,Linux一键启动、停止、重启Tomcat sh脚本
  5. android动画设置的单位,Kotlin语言入门—实现单位转换,view设置,动画等
  6. mysql快照过久_Oracle 快照(snapshot) 管理
  7. cent os重置mysql,linux mysql 能登陆不能修改用户(cent os 6.2)解决思路
  8. 统计学习导论_统计机器学习之扫盲导论篇
  9. 层与特征融合_【计算机系统应用】(第122期)感受野特征增强的 SSD 目标检测算法...
  10. 39. 组合总和020(思路+详解)