首页 > 其他分享 >[联合省选 2020A] 组合数问题 题解

[联合省选 2020A] 组合数问题 题解

时间:2025-01-23 09:00:02浏览次数:1  
标签:ix ma 省选 题解 sum int 2020A Bmatrix underline

后面有一只大大的组合数,考虑下降幂干过去。\(x^k\) 并不好使,这边考虑转化 \(f(x)=\sum a_ix^i=\sum b_ix^\underline i\)。

\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{k=0}^nx^k\sum_{i=0}^mb_ik^\underline i\binom nk \]

\[=\sum_{k=0}^nx^k\sum_{i=0}^mb_in^\underline i\binom{n-i}{k-i} \]

\[=\sum_{i=0}^mb_in^\underline i\sum_{k=0}^{n-i}x^{k+i}\binom{n-i}k \]

\[=\sum_{i=0}^mb_in^\underline ix^i(x+1)^{n-i} \]

最后一步的转化是二项式定理。
那现在问题变为如何快速求解 \(b_i\)。考虑第二类斯特林数。

\[\sum_{i=0}^ma_ix^i=\sum_{i=0}^ma_i\sum_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix}x^\underline j \]

\[=\sum_{i=0}^mx^\underline i\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[\sum_{i=0}^mb_ix^\underline i=\sum_{i=0}^mx^\underline i\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[b_i=\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{i=0}^mn^\underline ix^i(x+1)^{n-i}\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

那预处理出第二类斯特林数即可。时间复杂度 \(O(m^2)\)。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1005;
int n,x,p,m,str[N][N],a[N],ans;
int qpow(int x,int y){
    int re=1;
    while(y){
        if(y&1) re=re*x%p;
        x=x*x%p,y>>=1;
    }return re;
}signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n>>x>>p>>m,str[0][0]=1;
    for(int i=1;i<=m;i++) for(int j=1;j<=i;j++)
        str[i][j]=(str[i-1][j-1]+j*str[i-1][j])%p;
    for(int i=0;i<=m;i++) cin>>a[i];
    for(int i=0,sum=0;i<=m;i++,sum=0){
        for(int j=i;j<=m;j++)
            sum=(sum+a[j]*str[j][i])%p;
        for(int j=n-i+1;j<=n;j++)
            sum=sum*j%p*x%p;
        ans=(ans+sum*qpow(x+1,n-i))%p;
    }cout<<ans;
    return 0;
}

标签:ix,ma,省选,题解,sum,int,2020A,Bmatrix,underline
From: https://www.cnblogs.com/chang-an-22-lyh/p/18687060/lianhe2020a-zu_he_shu_wen_ti-tj

相关文章

  • Bear and Bad Powers of 42 题解
    题目描述定义一个正整数是坏的,当且仅当它是\(42\)的幂次,否则它是好的。给定长为\(n\)的序列\(a_i\),保证初始所有数都是好的。接下来\(q\)次操作:1i:查询\(a_i\)。2lrx:将\(a_l,\cdots,a_r\)赋值为一个好的数\(x\)。3lrx:将\(a_l,\cdots,a_r\)加上\(......
  • [ARC178C] Sum of Abs 2 题解
    首先想到能不能用差分搞搞,但是给自己绕进去了/kel我们不妨给\(\{b_L\}\)定个不降的序(如果打在数轴上,显然序和答案无关),于是可以拿掉绝对值。注意到这个和式(记其结果为\(x\))中每个\(b_i\)的贡献系数\(c_i=2i-L-1\),于是有:\[x=\sum_{i=1}^{L}b_ic_i\]直接做不......
  • CF2061G Kevin and Teams 题解
    题目描述这是一道交互题。\(T\)组数据,一张\(n\)个点的无向完全图,边权\(\in\{0,1\}\),边权未知。你需要先输出最大的\(k\),满足无论每条边的边权是什么,都能找出\(2k\)个不同的点\(\{u_1,\cdots,u_n,v_1,\cdots,v_n\}\),使得边\((u_i,v_i)\)的权值同时为\(0\)或同时......
  • Codeforces Round 998 (Div. 3)(部分题解)
    补题链接A. Fibonacciness思路:了解清楚题意,求得是最大的斐波那契的度,数组只有5个数(最多度为3),能列出其对应的式子 或 或#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){intn,m,k;vector<int>a(4);set<int>s;......
  • 2025省选模拟8
    2025省选模拟8题目来源:2024省选联测10\(T1\)HZTG5836.小幸运\(18pts\)将坐标扩大\(2\)倍后答案只可能为整数,证明显然。二分答案,\(check\)时考虑\(2-SAT\)。将一个点可能构成的等腰直角三角形划分成如下四个部分,最终仅能选择相邻的两个。不妨两条对角线上的......
  • 题解:洛谷 P1803 凌乱的yyy / 线段覆盖
    题目https://www.luogu.com.cn/problem/P1803题目大意给定  条线段,第  条线段放在位置 ,现在你需要从这些线段中拿出一些,使得剩下的线段不会重叠。思路考虑贪心。可以发现,按照左端点从小到大排序毫无意义(虽然样例能过)。因此考虑按右端点从小到大排序。然后尽量多放......
  • AtCoder ABC326C 题解
    题目链接问题陈述Takahashi在数字线上放置了\(N\)个礼物。第\(i\)个礼物放置在坐标\(A_i\)处。您将在数轴上选择长度为\(M\)的半开区间\([x,x+M)\),并获得其中包含的所有礼物。更具体地说,你根据以下程序获得礼物。首先,选择一个实数\(x\)。然后,获取坐标满足\(......
  • C. Game of Mathletes(题解)
    首先Alice擦一个数a,然后Bob再擦一个数b,只有当a+b=k的时候才可以得分,Alice想要最小化分数而Bob想要最大化分数,所以如果给定的数中存在两个数的和为k,那么当Alice擦掉其中一个的时候Bob一定会擦掉另一个来得分,而且题目给定的数组长度为偶数,所以我们只需要运用双指针的思想找到数组......
  • 常见问题解决 --- 引用的账户当前已锁定,且可能无法登录什么意思
     当你在尝试登录Windows系统时,看到错误提示“引用的账户当前已锁定,且可能无法登录”,这意味着你使用的用户账户由于多次输入错误的密码而被系统锁定。这是一种安全机制,旨在防止暴力破解或未经授权的访问。原因分析1.多次输入错误密码:如果连续多次输入错误的密码,系统会自......
  • 题解:P11600 『Fwb』流星の陨落
    『Fwb』流星の陨落题目描述流星雨来了!当然,这场流星雨确确实实是Fwb设计的。Fwb在天空中放置了许多的流星,同时也在地面上放置了许多的烟花。当流星和烟花发生碰撞时,就会出现美丽而独特的风景。由于方便控制流星雨的发射,流星的发射是有规律的,这个发射的规律叫做流星间隔。我......