将$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. PAT (Basic Level) Practice (中文)1031 查验身份证 (15分)

    1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为: {7,9,10,5,8,4,2 ...

  2. 02Prism WPF 入门实战 - 建项

    1.概要 Prism介绍 Github: https://github.com/PrismLibrary/Prism 开发文档:https://prismlibrary.com/docs/ Prism ...

  3. 「软件测试实战教程系列(三)」弃繁就简,接口测试神器Postman|收藏版

    软件测试实战教程系列(三)弃繁就简,接口测试神器Postman|收藏版 Postman主要帮我们干了三件事: 1.把相关集合放到一个集合当中方便管理. 2.对指定接口发送请求. 3.断言 下面我们使用 ...

  4. python和js分别在多行字符串中插入一行字符串

    问题 一个多行字符串,"asfdb;\nwesfpjoing;\nwbfliqwbefpwqufn\nasfdwe\nsafewt\nqwern\nvar\ntgwtg\n\nftwg\n& ...

  5. flutter页面间跳转和传参-Navigator的使用

    flutter页面间跳转和传参-Navigator的使用 概述 flutter中的默认导航分成两种,一种是命名的路由,一种是构建路由. 命名路由 这种路由需要一开始现在创建App的时候定义 new M ...

  6. 热身训练3 Palindrome

    Palindrome 简要题意:  我们有一个字符串S,字符串的长度不超过500000. 求满足S[i]=S[2n−i]=S[2n+i−2](1≤i≤n)(n≥2)的子串个数.  分析: 我们能通过简 ...

  7. 设计AOV网拓扑排序的算法

    拓扑排序 对一个有向图构造拓扑序列的过程称为拓扑排序(不唯一) 思想 从AOV网选择一个没有前驱的顶点并输出 从AOV网中删去该顶点,并且删去所有以该顶点为尾的弧 重复上述两步,直到全部顶点都被输出, ...

  8. 攻防世界 杂项 9.a_good_idea

    题目描述: 汤姆有个好主意 解题思路: 首先按照隐写思路找了一下没找到flag,接着使用winhex打开图片,发现图片里面又包含了一张图片,然后马上改了一下后缀为zip, 解压后发现里面有:hint. ...

  9. NOIP模拟86(多校19)

    T1 特殊字符串 解题思路 \(f_{i,j}\) 表示前 \(i\) 个字符中结尾为 \(j\) 的最大贡献. 转移枚举当前位置于之前位置结尾的组合加上贡献即可. 对于边界问题,容易发现选择 1 一 ...

  10. live555 rtsp直播卡顿马赛克优化

    最近搞了个rtsp直播,初步是能用了,但是最终效果不是很好,客户不接受要求我们一定要继续优化. 原因是他们体验的时候发现会概率性出现马赛克和画面卡顿情况,经过我们测试验证,确实是有这个问题存在. 从原 ...