Educational Codeforces Round 80 (Rated for Div. 2) C. Two Arrays 组合数|dp
傳送門
文章目錄
- 題意:
- 思路:
題意:
給你n,mn,mn,m,讓你構(gòu)造兩個(gè)數(shù)組a,ba,ba,b滿足:1<=ai,bi<=n1<=a_i,b_i<=n1<=ai?,bi?<=n,len=mlen=mlen=m,ai<=bia_i<=b_iai?<=bi?,aaa是非遞減的,bbb是非遞增的。求能夠造出多少個(gè)這樣的數(shù)組。
思路:
可以發(fā)現(xiàn),由于ai<=bia_i<=b_iai?<=bi?,aaa是非遞減的,bbb是非遞增的,所以兩個(gè)數(shù)組只需要an<=bna_n<=b_nan?<=bn?即可。所以我們用dpdpdp求出a,ba,ba,b以某個(gè)數(shù)iii結(jié)尾的方案,讓后a[m][i]?b[m][j]a[m][i]*b[m][j]a[m][i]?b[m][j]組合起來就行了。
所以我們定義f[i][j]f[i][j]f[i][j]表示到了第iii個(gè)位置,當(dāng)前數(shù)為jjj的方案數(shù),所以aaa數(shù)組轉(zhuǎn)移就是f[i][j]=∑k=1jf[i?1][k]f[i][j]=\sum _{k=1} ^j f[i-1][k]f[i][j]=k=1∑j?f[i?1][k]
bbb數(shù)組直接倒過來就行了。
最后答案即為a[m][i]?b[m][j]a[m][i]*b[m][j]a[m][i]?b[m][j]。
總結(jié)
以上是生活随笔為你收集整理的Educational Codeforces Round 80 (Rated for Div. 2) C. Two Arrays 组合数|dp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Round #61
- 下一篇: 腰肌劳损属于什么科