当前位置: 首页 > news >正文

网站怎么做付款平台/汕头seo外包机构

网站怎么做付款平台,汕头seo外包机构,怎么让网站排名上去,网站如何添加数据LINK 一个序列aaa的权值定义为D!∏i1n(aik)!\frac{D!}{\prod_{i1}^n(a_ik)!}∏i1n​(ai​k)!D!​ 合法的序列aaa满足∑i1naiD\sum\limits_{i1}^n a_iDi1∑n​ai​D且ai>0a_i>0ai​>0 求所有合法序列的权值和模998244353998244353998244353 其中D<108,n<50,k…

LINK

一个序列aaa的权值定义为D!∏i=1n(ai+k)!\frac{D!}{\prod_{i=1}^n(a_i+k)!}i=1n(ai+k)!D!

合法的序列aaa满足∑i=1nai=D\sum\limits_{i=1}^n a_i=Di=1nai=Dai>=0a_i>=0ai>=0

求所有合法序列的权值和模998244353998244353998244353

其中D<=108,n<=50,k<=50D<=10^8,n<=50,k<=50D<=108,n<=50,k<=50


考虑先求

ans1=∑ai>=0&&(∑i=1nai)=DD!∏i=1nai!ans1=\sum\limits_{a_i>=0\&\&(\sum\limits_{i=1}^n a_i)=D} \frac{D!}{\prod\limits_{i=1}^n a_{i!}}ans1=ai>=0&&(i=1nai)=Di=1nai!D!

考虑D!∗∏i=1n1ai!D!*\prod\limits_{i=1}^n \frac{1}{a_i!}D!i=1nai!1的意义

相当于一个可重集排列问题,DDD个小球排成一排,第iii种小球有aia_iai个,求排列的方案数

考虑现在aia_iai的值不是固定的,相当于求一个给DDD个小球分配颜色并排列的方案,这显然有更简单的算法

考虑拿出的第iii个小球排列在第iii个位置,那么它的颜色可以有nnn种,总方案也就是nDn^DnD

于是我们知道ans1=nDans1=n^Dans1=nD

不过题目要求的是

ans2=∑ai>=0&&(∑i=1nai)=DD!∏i=1n(ai+k)!ans2=\sum\limits_{a_i>=0\&\&(\sum\limits_{i=1}^n a_i)=D} \frac{D!}{\prod\limits_{i=1}^n (a_i+k)!}ans2=ai>=0&&(i=1nai)=Di=1n(ai+k)!D!

这样就用不了上面的结论了,考虑变形一下来使用上面的结论

ans2=∑ai>=k&&(∑i=1nai)=D+nkD!∏i=1nai!=D!(D+nk)!∗nD+nkans2=\sum\limits_{a_i>=k\&\&(\sum\limits_{i=1}^n a_i)=D+nk} \frac{D!}{\prod\limits_{i=1}^n a_i!}=\frac{D!}{(D+nk)!}*n^{D+nk}ans2=ai>=k&&(i=1nai)=D+nki=1nai!D!=(D+nk)!D!nD+nk

这样肯定算多了,因为在这nnn种颜色中,很多颜色没有分配够kkk,有些颜色分配够了

这个需要容斥掉不合法的方案数,不妨定义f[i][j]f[i][j]f[i][j]表示iii个位置不合法,这些数字的和是jjj共造成的贡献

f[i][j]=f[i−1][j−q]∗1q!f[i][j]=f[i-1][j-q]*\frac{1}{q!}f[i][j]=f[i1][jq]q!1

显然有(ni)\binom {n}{i}(in)种取法,不满足的位置贡献是f[i][j]f[i][j]f[i][j]

满足的位置按照上面的计算方式有D!(D+nk−j)!(n−i)D+nk−j\frac{D!}{(D+nk-j)!}(n-i)^{D+nk-j}(D+nkj)!D!(ni)D+nkj的贡献,乘起来就好了

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6+10;
const int mod = 998244353;
int n,k,D,a[maxn],fac[maxn],inv[maxn];
int f[2509][2509],C[2509][2509];
int quick(int x,int n)
{int ans = 1;for( ; n ; n>>=1,x=x*x%mod )if( n&1 )	ans = ans*x%mod;return ans; 
}
void upd(int &x,int y){ x = (x+y)%mod; }
void init()
{fac[0] = 1;for(int i=1;i<=k;i++)	fac[i] = fac[i-1]*i%mod;for(int i=k;i>=0;i--) inv[i] = quick( fac[i],mod-2 );for(int i=0;i<=n*k;i++){C[i][0] = 1;for(int j=1;j<=i;j++)C[i][j] = ( C[i-1][j-1]+C[i-1][j] )%mod;}	 f[0][0] = 1;//有i个<k且和为jfor(int i=1;i<=n;i++)for(int j=0;j<=n*k;j++)for(int q=0;q<k && q<=j;q++)upd( f[i][j],f[i-1][j-q]*inv[q]%mod );
}
int get(int l,int r)
{int ans = 1;for(int i=l+1;i<=r;i++)	ans = ans*i%mod;return quick( ans,mod-2 );
}
signed main()
{cin >> n >> k >> D;init();int ans = 0;for(int i=0;i<=n;i++)for(int j=0;j<=n*k;j++){int fu = (i&1)?-1:1, sum = D+n*k-j;upd( ans,fu*C[n][i]*f[i][j]%mod*get(D,sum)%mod*quick(n-i,sum)%mod );}cout << ( ans%mod+mod )%mod;
}
http://www.jmfq.cn/news/5085415.html

相关文章:

  • 贵州专业网站建设/免费推广网址
  • 长春网站建设/seo网站优化服务
  • axure做网站效果图步骤/全球搜索引擎市场份额
  • 制作网站付费软件/网站策划是什么
  • 电商网站制作流程图/上海抖音seo公司
  • 昆明哪些做网站建设的公司/移动慧生活app下载
  • 西安行业网站建设/网络营销到底是个啥
  • html 与wordpress/重庆seo霸屏
  • 企业网站及公众号建设方案/俄罗斯搜索引擎yandex官网入口
  • hefei 网站制作/关注公众号推广2元一个
  • 企业名录搜索网站/广州seo网站
  • 建网站做站长怎么赚钱/软文一般发布在哪些平台
  • 商城网站建设方案/东莞seo推广机构帖子
  • wordpress nginx 404/关键词推广seo怎么优化
  • 网站电子签名怎么做/最新中国新闻
  • 现在标书都从哪个网站下载/网络优化的基本方法
  • 网站如何提升流量/bt种子万能搜索神器
  • 辅导班如何做网站/网络查询网站
  • 千锋教育西安校区/seo排名优化公司价格
  • 营销型网站建设大千建站/浙江网络推广公司
  • 网页使用怎么做/杭州seo顾问
  • 网站域名怎么免费获取/网络优化工程师需要学什么
  • 福永网站的建设/建网站怎么赚钱
  • 网站后期维护工作包括哪些/厉害的seo顾问
  • 查询企业年报的网站/东莞搜索引擎推广
  • 成都设计公司视频制作/百度关键词优化系统
  • 篇高端网站愿建设/在线看seo网站
  • 乐山 做网站/百度搜索引擎优化的方法
  • 网站建设设计的流程/矿泉水软文广告500字
  • 通信工程网站建设/郑州网络运营培训