有哪些网站适合大学生做兼职网站开发人员是干什么的
news/
2025/9/22 16:32:25/
文章来源:
有哪些网站适合大学生做兼职,网站开发人员是干什么的,跨境电商平台有哪些知乎,seo排名网题目链接 BZOJ#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id2655 Solution 设\(f_i\)表示长度为\(i\)的序列个数#xff0c;\(g_{i,x}\)表示含有\(x\)的序列个数#xff0c;注意这里不考虑顺序#xff0c;顺序答案直接乘\(n!\)就好了。 首先很显然可以得到…题目链接 BZOJhttps://www.lydsy.com/JudgeOnline/problem.php?id2655 Solution 设\(f_i\)表示长度为\(i\)的序列个数\(g_{i,x}\)表示含有\(x\)的序列个数注意这里不考虑顺序顺序答案直接乘\(n!\)就好了。 首先很显然可以得到\[ f_i\frac{1}{n}\sum_{x1}^{A}g_{i,x} \] 我们尝试向\(f_i\)中添加一个\(x\)可以得到\[ xf_ixg_{i,x}g_{i1,x} \] 把这个式子变一下\[ g_{i,x}xf_{i-1}-xg_{i-1,x} \] 注意到这是个递归的形式可以得到\[ g_{n,x}\sum_{i1}^{n}(-1)^{i-1}x^if_{n-i} \] 根据第一个式子累和\[ f_n\frac{1}{n}\sum_{i1}^Ag_{n,x}\frac{1}{n}\sum_{i1}^{A}\sum_{j1}^{n}(-1)^{j-1}i^{j}f_{n-j}\frac{1}{n}\sum_{j1}^{n}\left((-1)^{j-1}\sum_{i1}^{A}i^j\right)f_{n-j} \] 注意中间是一个只和\(j\)有关的式子我们可以插值做到\(O(n)\)算一次。 那么我们预处理中间其他的爆算就好了复杂度\(O(n^2)\)。 注意我代码偷懒多了个\(\log\)但是不影响。 #includebits/stdc.h
using namespace std;void read(int x) {x0;int f1;char chgetchar();for(;!isdigit(ch);chgetchar()) if(ch-) f-f;for(;isdigit(ch);chgetchar()) xx*10ch-0;x*f;
}void print(int x) {if(x0) putchar(-),x-x;if(!x) return ;print(x/10),putchar(x%1048);
}
void write(int x) {if(!x) putchar(0);else print(x);putchar(\n);}#define lf double
#define ll long long #define pii pairint,int
#define vec vectorint #define pb push_back
#define mp make_pair
#define fr first
#define sc second#define FOR(i,l,r) for(int il,i##_rr;ii##_r;i) const int maxn 60010;
const int inf 1e9;
const lf eps 1e-8;int g[maxn],f[maxn],y[maxn],mod,fac[maxn],ifac[maxn],inv[maxn],suf[maxn],pre[maxn];int qpow(int a,int x) {int res1;for(;x;x1,a1ll*a*a%mod) if(x1) res1ll*res*a%mod;return res;
}int power_sum(int n,int k) {fac[0]ifac[0]1;k2;for(int i1;ik;i) y[i](y[i-1]qpow(i,k-2))%mod;for(int i1;ik;i) fac[i]1ll*fac[i-1]*i%mod,ifac[i]qpow(fac[i],mod-2);pre[0]1;for(int i1;ik;i) pre[i]1ll*pre[i-1]*(n-i)%mod;suf[k1]1;for(int ik;i;i--) suf[i]1ll*suf[i1]*(n-i)%mod;int res0;for(int i1;ik;i) res(res1ll*(((k-i)1)?-1:1)*y[i]*pre[i-1]%mod*suf[i1]%mod*ifac[i-1]%mod*ifac[k-i]%mod)%mod; return (resmod)%mod;
}int A,n;int main() {read(A),read(n),read(mod);for(int i0;in;i) g[i]((i1)?1:-1)*power_sum(A,i);f[0]1;int t1;for(int i1;in;i) {for(int j1;ji;j)f[i](f[i]1ll*g[j]*f[i-j])%mod;f[i]1ll*f[i]*qpow(i,mod-2)%mod;t1ll*t*i%mod;}write((1ll*f[n]*t%modmod)%mod);return 0;
} 转载于:https://www.cnblogs.com/hbyer/p/10890702.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909647.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!