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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

HZOJ matrix

發(fā)布時(shí)間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HZOJ matrix 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

完全沒(méi)有思路,狀壓到死沒(méi)調(diào)出來(lái)……吐槽一下這題目描述的好不清楚啊好多人都理解錯(cuò)題了……

題解:

真的挺神仙的,因?yàn)橛忻苛凶疃喾?個(gè)的限制,所以考慮按列dp,設(shè)f[i][j]表示考慮前i列在[1,i]中的右區(qū)間中有j個(gè)1,初始狀態(tài)f[0][0]=1;注:以下右區(qū)間表示[r[u],m];

記錄l,r的前綴和sl,sr,但是這兩個(gè)數(shù)組的含義并不一樣,sl[i]表示前i列中有多少行左區(qū)間已經(jīng)結(jié)束,sr[i]表示的則是前i列中有多少行右區(qū)間已經(jīng)開(kāi)始。

轉(zhuǎn)移:首先只考慮第i列,枚舉右區(qū)間1的個(gè)數(shù)j,如果第i列不放1,那么$f[i][j]+=f[i-1][j]$,如果第i列放1,現(xiàn)在不考慮前i-1列的應(yīng)響,$f[i][j]+=f[i-1][j-1]*(sr[i]-j+1)$,這里解釋一下這個(gè)$sr[i]-j+1$,在前i列包括sr[i]行的右區(qū)間可以放1,而前i-1列已經(jīng)放了$j-1$個(gè)1占據(jù)了$(j-1)$行,所以第i列能放1的行數(shù)為$(sr[i]-(j-1))$,由乘法計(jì)數(shù)原理得以上式子。但是我們這是沒(méi)有考慮前i列左區(qū)間的情況:同樣枚舉右區(qū)間放k個(gè)1,此時(shí)有(sl[i]-sl[i-1])個(gè)左區(qū)間在第i列結(jié)尾,所以此時(shí)有(sl[i]-sl[i-1])個(gè)1必須要放,而有i-k-sl[i-1]個(gè)位置可以放1,所以要乘$A_{i-k-sl[i-1]}^{sl[i]-sl[i-1]}$,如果不合法會(huì)變成負(fù)數(shù)。最后f[m][n]即為最后答案。

1 #include<iostream> 2 #include<cstdio> 3 #define LL long long 4 #define int LL 5 #define mod 998244353 6 #define MAXN 3010 7 using namespace std; 8 int n,m,l[MAXN],r[MAXN]; 9 int sl[MAXN],sr[MAXN],f[MAXN][MAXN]; 10 signed main() 11 { 12 cin>>n>>m; 13 for(int i=1;i<=n;i++)cin>>l[i]>>r[i],sl[l[i]]++,sr[r[i]]++; 14 for(int i=1;i<=m;i++)sl[i]+=sl[i-1],sr[i]+=sr[i-1]; 15 f[0][0]=1; 16 for(int i=1;i<=m;i++) 17 { 18 f[i][0]=f[i-1][0]; 19 for(int j=1;j<=i;j++) 20 f[i][j]=(f[i-1][j]+f[i-1][j-1]*(sr[i]-j+1)%mod)%mod; 21 for(int k=0;k<=i;k++) 22 for(int j=sl[i-1];j<sl[i];j++) 23 f[i][k]=f[i][k]*(i-k-j)%mod; 24 } 25 printf("%lld\n",f[m][n]); 26 } View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/Al-Ca/p/11286366.html

總結(jié)

以上是生活随笔為你收集整理的HZOJ matrix的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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