日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

P4351-[CERC2015]Frightful Formula【组合数学,MTT】

發(fā)布時(shí)間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P4351-[CERC2015]Frightful Formula【组合数学,MTT】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

正題

題目鏈接:https://www.luogu.com.cn/problem/P4351


題目大意

n?nn*nn?n的矩形,給出第一行和第一列的數(shù),剩下的滿足Fi,j=a?Fi,j?1+b?Fi?1,j+cF_{i,j}=a*F_{i,j-1}+b*F_{i-1,j}+cFi,j?=a?Fi,j?1?+b?Fi?1,j?+c

Fn,nF_{n,n}Fn,n?


解題思路

第一眼看以為是水題,因?yàn)榻o出的數(shù)字的貢獻(xiàn)通過組合數(shù)很好算,但是后來發(fā)現(xiàn)麻煩的是那個(gè)ccc。我們考慮每個(gè)格子的ccc產(chǎn)生的貢獻(xiàn)。

下面為了方便我們先默認(rèn)讓所有格子橫縱坐標(biāo)減111
對(duì)于一個(gè)格子(i,j)(i,j)(i,j),通過它的路徑有(2n?i?jn?i)\binom{2n-i-j}{n-i}(n?i2n?i?j?)種,然后產(chǎn)生的貢獻(xiàn)是an?ibn?ja^{n-i}b^{n-j}an?ibn?j。為了方便我們反過來表示,然后因?yàn)榈谝恍械谝涣袥]有貢獻(xiàn)所以nnn減一。
那么總共的貢獻(xiàn)就是∑i=0n∑j=0naibi(i+ji)\sum_{i=0}^n\sum_{j=0}^na^ib^i\binom{i+j}{i}i=0n?j=0n?aibi(ii+j?)
然后因?yàn)橛?span id="ozvdkddzhkzd" class="katex--inline">i+ji+ji+j很麻煩,考慮枚舉i+ji+ji+j就有
∑i=02n∑j=max{0,i?n}min{i,n}ajbi?j(i+j)!j!(i?j)!\sum_{i=0}^{2n}\sum_{j=max\{0,i-n\}}^{min\{i,n\}}a^jb^{i-j}\frac{(i+j)!}{j!(i-j)!}i=02n?j=max{0,i?n}min{i,n}?ajbi?jj!(i?j)!(i+j)!?
(i+j)!(i+j)!(i+j)!拿出去就是一個(gè)卷積的形式了,模數(shù)比較丑所以要用MTTMTTMTT來做。(除了MTTMTTMTT部分全部自己推?)。

記得要預(yù)處理單位根,不然會(huì)被卡精度,時(shí)間復(fù)雜度O(nlog?n)O(n\log n)O(nlogn)(常數(shù)巨大)

好像有更簡(jiǎn)單的做法就是用一個(gè)xxx滿足ax+bx+c=xax+bx+c=xax+bx+c=x的來消掉ccc這個(gè)元就可以直接做了,但是我不會(huì)。


codecodecode

#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define ll long long using namespace std; const double Pi=acos(-1); const ll N=2e6+10,P=1e6+3; ll n,a,b,c,ans,F[N],H[N],G[N]; ll inv[N],fac[N],r[N],apw[N],bpw[N]; ll power(ll x,ll b){ll ans=1;while(b){if(b&1)ans=ans*x%P;x=x*x%P;b>>=1;}return ans; } ll C(ll n,ll m) {return fac[n]*inv[m]%P*inv[n-m]%P;} namespace Poly{const ll seq=32768;struct complex{double x,y;complex(double xx=0,double yy=0){x=xx;y=yy;}}A[N],B[N],C[N],D[N],w[N];complex operator+(complex a,complex b){return complex(a.x+b.x,a.y+b.y);}complex operator-(complex a,complex b){return complex(a.x-b.x,a.y-b.y);}complex operator*(complex a,complex b){return complex(a.x*b.x-a.y*b.y,a.x*b.y+a.y*b.x);}void FFT(complex *f,ll n,ll op){for(ll i=0;i<n;i++)if(i<r[i])swap(f[i],f[r[i]]);for(ll p=2;p<=n;p<<=1){ll len=p>>1;for(ll k=0;k<n;k+=p){for(ll i=k;i<k+len;i++){complex tmp=w[n/len*(i-k)];if(op==-1)tmp.y=-tmp.y;complex tt=f[i+len]*tmp;f[i+len]=f[i]-tt;f[i]=f[i]+tt;}}}if(op==-1){for(ll i=0;i<n;i++)f[i].x=fabs(f[i].x/n+0.5);}return;}void MTT(ll *a,ll *b,ll *c,ll n,ll m){ll l=1;while(l<=n+m)l<<=1;for(ll i=0;i<l;i++)r[i]=(r[i>>1]>>1)|((i&1)?(l>>1):0);for (ll k=1;k<l;k<<=1)for (ll i=0;i<k;i++)w[l/k*i]=(complex){cos(i*Pi/k),sin(i*Pi/k)};for(ll i=0;i<n;i++)A[i].x=a[i]/seq,B[i].x=a[i]%seq;for(ll i=0;i<m;i++)C[i].x=b[i]/seq,D[i].x=b[i]%seq;FFT(A,l,1);FFT(B,l,1);FFT(C,l,1);FFT(D,l,1);complex t1,t2;for(ll i=0;i<l;i++){t1=A[i]*C[i];t2=B[i]*D[i];B[i]=A[i]*D[i]+B[i]*C[i];A[i]=t1;C[i]=t2;}FFT(A,l,-1);FFT(B,l,-1);FFT(C,l,-1);for(ll i=0;i<l;i++){c[i]=(c[i]+(ll)(A[i].x)*seq%P*seq%P)%P;c[i]=(c[i]+(ll)(B[i].x)*seq%P)%P;c[i]=(c[i]+(ll)(C[i].x))%P;}return;} } void init(){inv[1]=1;apw[0]=bpw[0]=1;for(ll i=1;i<=2*n;i++)apw[i]=apw[i-1]*a%P,bpw[i]=bpw[i-1]*b%P;for(ll i=2;i<=2*n;i++)inv[i]=(P-(P/i)*inv[P%i]%P)%P;inv[0]=fac[0]=1;for(ll i=1;i<=2*n;i++){fac[i]=fac[i-1]*i%P;inv[i]=inv[i-1]*inv[i]%P;} } signed main() {scanf("%lld%lld%lld%lld",&n,&a,&b,&c);init();n--;for(ll i=0;i<=n;i++){ll x;scanf("%lld",&x);if(!i)continue;x=x*bpw[n-i]%P*apw[n]%P;(ans+=x*C(n+n-i-1,n-1)%P)%=P;}for(ll i=0;i<=n;i++){ll x;scanf("%lld",&x);if(!i)continue;x=x*apw[n-i]%P*bpw[n]%P;(ans+=x*C(n+n-i-1,n-1)%P)%=P;}//處理已知數(shù)列for(ll i=0;i<n;i++){F[i]=apw[i]*inv[i]%P;H[i]=bpw[i]*inv[i]%P;}Poly::MTT(F,H,G,n,n);for(ll i=0;i<2*n-1;i++)(ans+=G[i]*c%P*fac[i]%P)%=P; // for(ll i=0;i<=n;i++){ // (ans+=P-apw[n-i]*bpw[n]%P*c%P*C(n+n-i,n)%P)%=P; // if(!i)continue; // (ans+=P-bpw[n-i]*apw[n]%P*c%P*C(n+n-i,n)%P)%=P; // }printf("%lld\n",ans);return 0; }

總結(jié)

以上是生活随笔為你收集整理的P4351-[CERC2015]Frightful Formula【组合数学,MTT】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲午夜精品一区二区三区他趣 | 亚洲欧美另类在线视频 | www.我爱av| 中文字幕影院 | 精品午夜福利视频 | 毛片视频软件 | 亚洲情趣| 麻豆免费在线观看视频 | 综合久久亚洲 | 久草久草| 亚洲天堂av女优 | 久久精品黄色 | www.成人网.com | 国产在线观看免费视频今夜 | 人体裸体bbb欣赏 | 亚洲欧洲精品一区二区三区 | 成人综合激情 | 亚洲av无码一区二区乱子仑 | 日日燥夜夜燥 | 久久久国产精华液 | 日韩欧美成人一区二区 | 国产片久久 | 人人妻人人藻人人爽欧美一区 | 福利在线免费观看 | 激情九月天 | 欧美一区二区激情 | 久久精品国产亚洲AV成人婷婷 | 中文字幕高清一区 | 国产欧美亚洲一区 | 91视频污在线观看 | 久久久欧美精品 | 久久久久久国产精品三级玉女聊斋 | 韩国伦理片免费看 | 神马国产| 欧洲性生活视频 | 国语av在线 | 国产又黄又猛 | 黄色在线视频网址 | 黄色av毛片| jiz亚洲| 亚洲做受高潮 | 欧美大片网站 | 日本道在线观看 | 国产无遮挡a片又黄又爽 | 精品国产91 | 亚洲aⅴ网站 | 中文字幕免费在线看线人 | 欧美一区二区视频 | 人人舔人人干 | 欧美色图自拍 | 欧美性生交大片免费看 | 成人tv | 国产精品尤物 | 狠狠五月天 | 探花视频在线免费观看 | 精品国产一区二区三区久久久 | 无码av免费精品一区二区三区 | 日本a级黄色| 最新黄色网址在线观看 | 在线观看少妇 | 久久影片 | 亚洲石原莉奈一区二区在线观看 | 久久一级片 | 91成人精品视频 | 亚洲第一天堂影院 | 黄色视屏在线播放 | 亚洲精品性 | 成人av手机在线观看 | 国产免费a| 日本美女黄色一级片 | 欧美.com| 国产亚洲区 | 淫僧荡尼巨乳(h)小说 | 天天影视色 | 成人在线视频在线观看 | 久久久久亚洲AV成人网人人小说 | 欧美日韩高清一区二区 国产亚洲免费看 | 性网爆门事件集合av | 国产精品无码成人网站视频 | 黄色a在线观看 | 岛国av电影在线观看 | 人妻精品久久久久中文字幕69 | 欧美性生交xxxxx | 日本一区二区三区四区在线观看 | 最新av片| 亚洲精品电影院 | 青草视频在线免费观看 | 欧洲中文字幕日韩精品成人 | 欧美又粗又深又猛又爽啪啪九色 | 日本一二三区视频在线 | 探花国产在线 | 国产91丝袜在线播放九色 | 一区二视频 | 老汉av在线| 深田咏美av在线 | 成人在线免费视频观看 | 玉足脚交榨精h文 | 日本色影院 | 色综合久久88色综合天天免费 |