nssl1519-背包签到题【数论】
生活随笔
收集整理的這篇文章主要介紹了
nssl1519-背包签到题【数论】
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
正題
題目鏈接:http://10.156.31.134/contestnew.aspx?cid=189
題目大意
nnn種物品,每種aia_iai?個(gè)。放進(jìn)kkk個(gè)有序盒子求方案數(shù)(可以不放完)
解題思路
不放完其實(shí)就是k+1k+1k+1個(gè)盒子,插板法求Ck+aiaiC_{k+a_i}^{a_i}Ck+ai?ai??,即使kkk很大但是aia_iai?很小,預(yù)處理即可
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; const ll XJQ=998244353; ll n,k,f[110]; ll power(ll x,ll b){x%=XJQ;ll ans=1;while(b){if(b&1)ans=ans*x%XJQ;x=x*x%XJQ;b>>=1;}return ans; } int main() {scanf("%lld%lld",&n,&k);ll z=1,inv=1;f[0]=1;for(ll i=1;i<=100;i++){z=z*((k+i)%XJQ)%XJQ;inv=inv*power(i,XJQ-2)%XJQ;f[i]=z*inv%XJQ;}ll ans=1;for(ll i=1;i<=n;i++){ll x;scanf("%lld",&x);ans=ans*f[x]%XJQ;}printf("%lld",ans); }總結(jié)
以上是生活随笔為你收集整理的nssl1519-背包签到题【数论】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置中端的电脑有哪些(配置中端的电脑)
- 下一篇: 牛客练习赛69D-火柴排队【dp】