将$f(k)=\sum_{i=0}^{m}a_{i}k^{i}$转换为$f(k)=\sum_{i=0}^{m}b_{i}k^{\underline{i}}$,其中$k^{\underline{i}}=\frac{k!}{(k-i)!}$
题目即求$\sum_{k=0}^{n}c(n,k)x^{k}\sum_{i=0}^{m}b_{i}\cdot k^{\underline{i}}$
调整枚举顺序,即$\sum_{i=0}^{m}b_{i}\sum_{k=0}^{n}c(n,k)x^{k}k^{\underline{i}}$
观察发现$c(n,k)k^{\underline{i}}=\frac{n!}{k!(n-k)!}\frac{k!}{(k-i)!}=\frac{n!}{(k-i)!(n-k)!}=c(n-i,k-i)n^{\underline{i}}$
代入原式,即$\sum_{i=0}^{m}b_{i}n^{\underline{i}}\sum_{k=0}^{n}c(n-i,k-i)x^{k}$
令$k'=k-i$,即$\sum_{i=0}^{m}b_{i}n^{\underline{i}}x^{i}\sum_{k'=0}^{n-i}c(n-i,k')x^{k'}$
观察发现右式即$(x+1)^{n-i}$二项式展开,那么即$\sum_{i=0}^{m}b_{i}n^{\underline{i}}x^{i}(x+1)^{n-i}$
那么问题变为如何求出$b_{i}$,即如何将多项式转换为下降幂多项式【luoguP5383】
根据第二类斯特林数的性质,有$x^{n}=\sum_{i=0}^{n}c(x,i)i!S(n,i)=\sum_{i=0}^{n}S(n,i)x^{\underline{i}}$
那么就有$\sum_{i=0}^{m}a_{i}x^{i}=\sum_{i=0}^{m}a_{i}\sum_{j=0}^{i}S(i,j)x^{\underline{j}}=\sum_{j=0}^{m}x^{\underline{j}}\sum_{i=j}^{m}a_{i}S(i,j)$,即$b_{j}=\sum_{i=j}^{m}a_{i}S(i,j)$
本题由于$m\le 1000$,仅需要根据$S$的递推式暴力求出$S$并$o(m^{2})$计算即可

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 1005
4 int n,x,mod,m,ans,a[N],b[N],s[N][N];
5 int ksm(int n,int m){
6 if (!m)return 1;
7 int s=ksm(n,m>>1);
8 s=1LL*s*s%mod;
9 if (m&1)s=1LL*s*n%mod;
10 return s;
11 }
12 int main(){
13 scanf("%d%d%d%d",&n,&x,&mod,&m);
14 for(int i=0;i<=m;i++)scanf("%d",&a[i]);
15 s[0][0]=1;
16 for(int i=1;i<=m;i++)
17 for(int j=1;j<=i;j++)s[i][j]=(s[i-1][j-1]+1LL*j*s[i-1][j])%mod;
18 for(int i=0;i<=m;i++)
19 for(int j=i;j<=m;j++)b[i]=(b[i]+1LL*a[j]*s[j][i])%mod;
20 int s=1;
21 for(int i=0;i<=m;i++){
22 ans=(ans+1LL*b[i]*s%mod*ksm(x,i)%mod*ksm(x+1,n-i))%mod;
23 s=1LL*s*(n-i)%mod;
24 }
25 printf("%d",ans);
26 }

[loj3300]组合数问题的更多相关文章

  1. LCM性质 + 组合数 - HDU 5407 CRB and Candies

    CRB and Candies Problem's Link Mean: 给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n<=1e6). analy ...

  2. 计算一维组合数的java实现

    背景很简单,就是从给定的m个不同的元素中选出n个,输出所有的组合情况! 例如:从1到m的自然数中,选择n(n<=m)个数,有多少种选择的组合,将其输出! 本方案的代码实现逻辑是比较成熟的方案: ...

  3. Noip2016提高组 组合数问题problem

    Day2 T1 题目大意 告诉你组合数公式,其中n!=1*2*3*4*5*...*n:意思是从n个物体取出m个物体的方案数 现给定n.m.k,问在所有i(1<=i<=n),所有j(1< ...

  4. C++单元测试 之 gtest -- 组合数计算.

    本文将介绍如何使用gtest进行单元测试. gtest是google单元测试框架.使用非常方便. 首先,下载gtest (有些google项目包含gtest,如 protobuf),复制目录即可使用. ...

  5. NOIP2011多项式系数[快速幂|组合数|逆元]

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  6. AC日记——组合数问题 落谷 P2822 noip2016day2T1

    题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...

  7. 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数

    1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exgcd(l ...

  8. 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 95  Solved: 33[Submit][Statu ...

  9. UOJ263 【NOIP2016】组合数问题

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

随机推荐

  1. nGrinder 参数使用

    背景: 性能测试中为了更加接近真实模拟现实应用,对于提交的信息每次都需要提交不同的数据,或使用不同的值,最为典型的就是登录时的账号. 性能测试工具需要提供动态参数化功能,如商业化的LoadRunner ...

  2. spring提供的可拓展接口

    接口:SmartLifecycle(https://www.jianshu.com/p/7b8f2a97c8f5)

  3. spyglass DFT

    SolvNet spyglass clock_11 内部 generated clocks 在shift mode 不被 testclock 控制. Fix View the Incremental ...

  4. ArrayList和Vector

    ArrayList和Vector ArrayList ArrayList的注意实现 1.ArrayList可以加入null,并且多个 2.ArrayList是由数组来实现数据存储的 3.ArrayLi ...

  5. python常用内置函数(转载)

    1. 和数字相关 1.1 数据类型 1.2 进制转换 1.3 数学运算 2. 和数据结构相关 2.1 序列 2.2 数据集合 2.3 相关内置函数 3. 和作用域相关 4. 和迭代器生成器相关 5. ...

  6. Manjaro / ArchLinux 安装网易云音乐解决搜索不能输入中文方法

    0. 安装网易云音乐 yay -S netease-cloud-music 1.先安装qcef这个软件包. sudo yay -S qcef 2.编辑/opt/netease/netease-clou ...

  7. Noip模拟62 2021.9.26

    T1 Set 真就随机化拿了$90$?? 不过还是有依据的,毕竟这道题出解的几率很大,随出答案的概率也极大 所以不妨打一个随机化 1 #include<bits/stdc++.h> 2 # ...

  8. LP-DDR 和其他 DDR

    一篇技術文檔比較 LP-DDR 和其他 DDR. 就觀念來說,LP-DDR 就是 Low Power 的 DDR:但就架構來說,LP-DDR 和其他 DDR 是截然不同的東西. 他們分屬不同的 JDE ...

  9. Huffman算法

    一.Huffman算法介绍 霍夫曼编码(英语:Huffman Coding),又译为哈夫曼编码.赫夫曼编码,是一种用于无损数据压缩的熵编码(权编码)算法.在计算机数据处理中,霍夫曼编码使用变长编码表对 ...

  10. readelf

    readelf的help内容如下所示: Usage: readelf <option(s)> elf-file(s) Display information about the conte ...